home *** CD-ROM | disk | FTP | other *** search
- 10 '------------------------------------------------------------------
- 20 ' HK2SRC.BAS Copyrigit(C) T.Komura / 家計簿システム HK /
- 30 ' / Version 2 /
- 31 ' Version 4.0 1992.08.04-1992.08.06 / 検索プログラム /
- 32 'HK version 1.0 1993.01.01 公開バージョン
- 33 'HK version 1.1a 1993.08.04 辞書入力追加
- 34 'HK version 1.1b 1993.08.04 検索条件ウインドウを12dotフォント化
- 35 'HK version 1.4 1994.06.12 v1.4対応
- 36 ' HK2 V2.0 L10a 1995.05.27 v2.0
- 37 ' HK2 V2.0 L10f 1995.07.07 辞書入力の消去文字数修正/検索処理状況表示
- 38 ' HK2 V2.0 L10g 1995.07.15 検索中断時状況表示枠消去もれ修正
- 39 ' 検索キーワード区切り文字を"/"と"・"(追加)とする
- 100 '------------------------------------------------------------------
- 120 CLEAR ,,,,1024,300*1024
- 165 DIM CFI$(15)
- 170 GOSUB *CONFIGファイルチェック
- 190 '
- 200 *初期設定:'--------------------------------------------------------
- 210 CMD$="CD "+PRGDRV$:SHELL CMD$
- 220 CONSOLE 0,24,0:MOUSE 0
- 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
- 240 LOAD@ FMBDRV$+"\FMP.FMB"
- 250 PLAY "@30T150V6":DATX$=DATE$
- 255 'ウインドウ関係座標配列
- 256 G=7:B=50
- 260 DIM B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B),BST(G,B)
- 265 DIM W_X1(G),W_X2(G),W_Y1(G),W_Y2(G)
- 266 DIM W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 267 DIM MD_SB#(10465),MD_SW#(10465),MD_SX#(10465):'max : HELP window
- 268 'デ-タ配列
- 270 DIM DYN$(16),DRM$(16),DYN#(16),EVDT$(12,32)
- 272 DIM ITEM$(20),ITEMC(20),SRD(16),FKEYS(16)
- 274 DIM UXX$(20,6),VXX$(20,6),KEYS$(16)
- 280 DIM WRD$(15,128),WLN(15,128),WRDM(128) :'辞書データ
- 295 DIM DOC$(2000) :'HELPデータ
- 300 INTERVAL 1 :'プログラム先頭
- 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭
- 320 GOSUB *ボタン座標読み取り
- 325 GOSUB *検索モード読み取り
- 330 'CLS:COLOR 7:PRINT int((int(((155-14+1)+7)/8)*(415-131+1)*4+8-1)/8)
- 360 DIM LMB#(900),ABOUTD#(2071),HLPL#(397),HLPC#(8449),DICD#(2565)
- 370 ON ERROR GOTO *ERROR
- 380 ON KEY(10) GOSUB *検索中止'
- 400 GOSUB *MCREAD:GOSUB *DCLOCKREAD
- 440 '
- 510 CTRLB1=17:'コントロールボタン個数
- 515 CTRLB2=15
- 524 HKSRC =3 :'検索ボタン番号
- 526 HKSRCEND=10:'終了ボタン番号
- 540 DOCF$="\HK2src.HLP"
- 600 PRTCD=1 :'1=esc/p 0=fmpr
- 980 '
- 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 1005 GOSUB *SEFFECT1
- 1020 GOSUB *本日の日付
- 1025 IF DICSF=1 THEN GOSUB *DICREAD
- 1030 GOSUB *前検索データ表示
- 1036 IF SRCF=1 THEN MES2OFF=1
- 1040 MOUSE 1,320,64,1
- 1045 MCN=1:GOSUB *MCDSET
- 1060 MESN=18:GOSUB *SNDMSG
- 1100 *メイン選択
- 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
- 1120 MES2OFF=0
- 1130 SWPASS=1:G=1:GOSUB *MCSELECT
- 1135 IF SWNO<0 THEN SWNO=17
- 1140 IF SWNO>CTRLB1 THEN GOTO *検索結果制御
- 1150 ' HK2 記入 検索 分析 CLND 設定 日付 時計 HELP END PRNT M01 M02 M03 M04 実行 取消
- 1155 ON SWNO GOTO *S01,*S02,*S02,*S02,*S02,*S02,*S99,*S03,*S07,*S08, *S09,*SMO,*SMO,*SMO,*SMO,*S04,*S05
- 1160 *S99:GOTO 1100
- 1190 '
- 1200 *SMO:'モード変更 --------------------------------------------------
- 1205 SWNOMEM=SWNO
- 1210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 1220 IF SRCF=0 THEN 1250
- 1230 CMES$="「検索モード変更」検索結果を破棄します。":GOSUB *確認
- 1240 ON CAUNO GOTO 1242,1640
- 1242 SMODSEL=0:GOSUB *検索条件消去
- 1245 SRCF=0 :GOSUB *検索結果データ画面消去
- 1250 '
- 1270 SMODE=SWNO-11:SMODSEL=1
- 1560 CDTSET=0:GOSUB *検索条件設定
- 1570 IF SRCCAN=0 THEN 1600
- 1580 GOTO 1625
- 1600 G=3:GOSUB *検索条件表示:CDTSET=1
- 1610 MESN=13:GOSUB *MESDSP:MESN=16:GOSUB *SNDMSG
- 1620 MES2OFF=1
- 1625 SWNO=SWNOMEM
- 1626 IF CDTSET=1 THEN 1670
- 1640 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 1670 GOTO *メイン選択
- 1690 '
- 1700 *S05:'取消 ---------------------------------------------------------
- 1710 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 1720 IF SMODSEL=1 THEN 1750
- 1730 MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
- 1740 FOR II=1 TO 5000:NEXT II:GOTO 1760
- 1750 SMODSEL=0:GOSUB *検索条件消去
- 1751 SRCF=0 :GOSUB *検索結果データ画面消去
- 1752 G=1:B=SMODE+11:BST(G,B)=0:GOSUB *BTN_ONOFF
- 1760 MES2OFF=0
- 1770 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 1780 GOTO *メイン選択
- 1790 '
- 1920 '
- 2000 *S04:'実行 --------------------------------------------------------
- 2010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2015 IF SRCF=1 THEN MES2OFF=1:GOTO 2470
- 2020 IF SMODSEL=1 THEN 2100
- 2030 MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
- 2040 FOR II=1 TO 5000:NEXT II:MES2OFF=0:GOTO 2470
- 2090 '
- 2100 GOSUB *検索実行
- 2110 GOSUB *初期表示ポイント検出
- 2120 IF BR<>0 THEN 2200
- 2130 MESN=18:GOSUB *MESDSP:MESN=19:GOSUB *SNDMSG
- 2132 SMODSEL=0:' GOSUB *検索条件消去
- 2134 SRCF=0 :GOSUB *検索結果データ画面消去
- 2140 WAIT SWAIT:MES2OFF=0
- 2150 G=1:B=SMODE+11:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2160 GOTO 2470
- 2190 '
- 2200 GOSUB *検索結果データ表示MAIN
- 2210 SRCF=1
- 2220 G=1:B=SMODE+11:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2230 MESN=19:GOSUB *MESDSP:MESN=14:GOSUB *SNDMSG
- 2240 GOSUB *検索結果ページ表示
- 2460 MES2OFF=1
- 2470 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2480 GOTO *メイン選択
- 2490 '
- 2500 *S09:'検索結果印刷 -----------------------------------------------'
- 2510 IF SRCF=0 THEN GOTO 2550
- 2520 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 2530 MESN=2:GOSUB *MESDSP
- 2540 GOSUB *検索結果印刷
- 2550 MES2OFF=0
- 2560 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 2570 GOTO *メイン選択
- 2580 '
- 2790 '
- 3000 *検索結果制御'----------------------------------------------------'
- 3005 IF SRCF=0 THEN 3090
- 3010 IF SWNO=18 THEN PDEF=-1:GOTO *SCPCHG'
- 3020 IF SWNO=21 THEN PDEF=+1:GOTO *SCPCHG
- 3030 IF SWNO=19 THEN LDEF=-1:GOTO *SCLCHG'
- 3040 IF SWNO=20 THEN LDEF=+1:GOTO *SCLCHG
- 3050 IF SWNO>21 THEN *SRCJUMP
- 3070 MES2OFF=1
- 3080 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 3090 GOTO *メイン選択
- 3100 *SCPCHG
- 3110 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3130 GOSUB *ページ変更
- 3140 GOSUB *検索結果データ表示MAIN
- 3150 GOTO 3070
- 3200 *SCLCHG
- 3210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3230 GOSUB *行変更
- 3240 GOSUB *検索結果データ表示MAIN
- 3250 GOTO 3070
- 3260 '
- 3300 *SRCJUMP
- 3310 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 3320 DSPL=SWNO-21
- 3330 IF SITM=1 THEN DT$=VXX$(DSPL,1) ELSE DT$=UXX$(DSPL,1)
- 3332 IF DT$=SPACE$(10) THEN GOTO 3070
- 3350 CMES$="指定日付の「記入・編集モード」へ移行":GOSUB *確認
- 3360 ON CAUNO GOTO 3400,3070
- 3400 GOSUB *DTSAVE
- 3410 SWNO=2:GOTO *S02
- 5990 '
- 6000 *S01:'About HK2---------------------------------------------------'
- 6010 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6020 MESN=1:GOSUB *MESDSP
- 6030 GOSUB *ABOUT表示
- 6060 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6070 GOTO *メイン選択
- 6080 '
- 6100 *S03:'Digital Clock ----------------------------------------------'
- 6110 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6120 MESN=20:GOSUB *MESDSP
- 6130 GOSUB *DGCLOCK
- 6160 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6170 GOTO *メイン選択
- 6180 '
- 6200 *S07:'Help -------------------------------------------------------'
- 6210 G=1:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 6220 MESN=20:GOSUB *MESDSP
- 6230 GOSUB *HKHELP
- 6260 G=1:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 6270 GOTO *メイン選択
- 6280 '
- 7900 '
- 8000 *S02:'プログラム呼び出し・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 8010 IF SWNO=HKSRC THEN GOTO *メイン選択
- 8020 G=1:B=HKSRC:BST(G,B)=0:GOSUB *BTN_ONOFF
- 8025 G=1:B=SWNO :BST(G,B)=1:GOSUB *BTN_ONOFF
- 8110 MESN=9:GOSUB *MESDSP':MESN=24:GOSUB *SNDMSG
- 8120 INTERVAL OFF:GOSUB *SEFFECT2
- 8130 ON SWNO-1 GOTO *S021,*S02,*S023,*S024,*S025
- 8150 '
- 8160 *S021:RUN "HK2in.bas"
- 8170 *S023:RUN "HK2anl.bas"
- 8180 *S024:RUN "HK2cld.bas"
- 8190 *S025:RUN "HK2cfg.bas"
- 8940 '
- 9000 *S08:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 9020 G=1:B=HKSRCEND:BST(G,B)=1:GOSUB *BTN_ONOFF
- 9060 '
- 9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
- 9120 INTERVAL OFF
- 9130 GOSUB *SEFFECT2
- 9150 RUN "hk2.bas"
- 9160 '
- 9900 '-------------------------------------------------------------------
- 9910 ' GENERAL SUB ROUTINE
- 9920 '-------------------------------------------------------------------
- 10000 *CHR1IN:'////////// 1文字入力
- 10010 A$=INKEY$:IF A$="" THEN 10010
- 10020 A=INSTR(C$,A$)
- 10030 IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
- 10040 RETURN
- 10050 '
- 10060 '
- 10070 *MESDSP:'////////// メッセージ表示
- 10080 RESTORE *MESDAT
- 10090 FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
- 10105 LINE(0,463)-(639,479),PSET,0,BF
- 10115 SYMBOL(0,465),MES$,.75!,.75!,CM
- 10120 'IF BM=1 THEN PLAY "L4O4A"
- 10130 RETURN
- 10140 '
- 10200 *MESDAT:'////////// メッセージデータ
- 10205 ' XM, YN, CM, CB, BM
- 10210 DATA 2, 23, 5, 0, 1 :'--- 01
- 10215 DATA "家計簿システム HK2 [検索モード]"
- 10220 DATA 2, 23, 7, 0, 0 :'--- 02
- 10225 DATA "検索モードを選んでください。"
- 10230 DATA 2, 23, 5, 0, 0 :'--- 03
- 10235 DATA " ●印の項目を設定してください。"
- 10240 DATA 2, 23, 7, 0, 1 :'--- 04
- 10245 DATA "前回の検索結果を表示しています。 検索モードを選んでください。 頁移動-[ヒ][フ]行移動-[▲][▼]"
- 10250 DATA 2, 23, 4, 0, 1 :'--- 05
- 10255 DATA ""
- 10260 DATA 2, 23, 6, 0, 1 :'--- 06
- 10265 DATA "この検索モードでは、指定した検索条件は無効です。"
- 10270 DATA 2, 23, 6, 0, 0 :'--- 07
- 10275 DATA "検索開始年月が検索終了年月よりも大きくなっています。 訂正してください。"
- 10280 DATA 2, 23, 6, 0, 0 :'--- 08
- 10285 DATA "金額範囲の指定に誤りがあります。訂正してください。"
- 10290 DATA 2, 23, 5, 0, 1 :'--- 09
- 10295 DATA "★★★ しばらくお待ちください。"
- 10300 DATA 2, 23, 6, 0, 0 :'--- 10
- 10305 DATA "この検索モードでは、指定した検索項目は無効です。 検索項目を選択し直して下さい。"
- 10310 DATA 2, 23, 6, 0, 0 :'--- 11
- 10315 DATA "検索項目が指定されていません。 検索項目を選んでください。"
- 10320 DATA 2, 23, 7, 0, 0 :'--- 12
- 10325 DATA "検索条件ファイルを保存しますか? 保存する--[OK] 保存しない--[NG]"
- 10330 DATA 2, 23, 7, 0, 1 :'--- 13
- 10335 DATA "検索条件を確認して[実行]ボタンを押してください。"
- 10340 DATA 2, 23, 6, 0, 1 :'--- 14
- 10345 DATA "検索モードを選んでください。"
- 10350 DATA 2, 23, 6, 0, 1 :'--- 15
- 10355 DATA "検索開始年月の家計簿ファイルがありません。"
- 10360 DATA 2, 23, 6, 0, 1 :'--- 16
- 10365 DATA "検索終了年月の家計簿ファイルがありません。"
- 10370 DATA 2, 23, 4, 0, 1 :'--- 17
- 10375 DATA "★検索実行中!! (中止は[PF10])"
- 10380 DATA 2, 23, 6, 0, 1 :'--- 18
- 10385 DATA "検索の結果該当するデータが有りませんでした。"
- 10390 DATA 2, 23, 7, 0, 1 :'--- 19
- 10395 DATA "[JUMP]で「記入」モードへ移行。 頁移動-[ヒ][フ]行移動-[▲][▼] [取消]--検索条件変更"
- 10400 DATA 2, 23, 5, 0, 1 :'--- 20
- 10405 DATA "HKHELP★検索モードの説明を表示しています。 頁移動-[ヒ][フ] 行移動-[▲][▼] 終了-[■]"
- 10410 DATA 2, 23, 4, 0, 1 :'--- 21
- 10415 DATA "★辞書入力を「有効」にします!! "
- 10420 DATA 2, 23, 4, 0, 1 :'--- 22
- 10425 DATA "★辞書入力を「無効」にします!! "
- 10430 DATA 2, 23, 7, 0, 1 :'--- 23
- 10435 DATA "辞書から語句を選んでください。 "
- 10600 *SEFFECT1'////////////////////////////////////////////////////////
- 10605 SCREEN 1,1,2,1:PALETTE 9,[0,0,0]:LINE(0,0)-(639,479),PSET,1,BF
- 10610 SCREEN 1,0,2,1:GOSUB *表紙表示
- 10612 SCREEN 1,1,3,1:
- 10620 FOR II=0 TO 240 STEP 2:PALETTE 9,[II,II,II]
- 10621 ' LINE(320-II,240-II*3/4)-(320+II,240+II*3/4),PSET,0,B
- 10622 LINE(0,240-II)-(639,240+II),PSET,0,BF
- 10623 NEXT II
- 10630 SCREEN 1,0,1,0:INTERVAL ON
- 10640 SCREEN 0
- 10645 RETURN
- 10650 '
- 10700 *SEFFECT2'////////////////////////////////////////////////////////
- 10712 SCREEN 1,1,3,1:
- 10720 FOR II=240 TO 0 STEP -1:PALETTE 9,[II,II,II]
- 10721 LINE(0,240+II)-(639,240-II),PSET,1,B
- 10723 NEXT II
- 10730 MESN=9:GOSUB *MESDSP
- 10740 RETURN
- 10990 '
- 11000 *SNDMSG:' SAVE "SNDMSG.SUB",A
- 11005 IF SNDMF=0 THEN RETURN
- 11010 '・・・・・・・・・・・・・・・・・ サウンドメッセージ実行サブルーチン 1989.02.04
- 11020 ' 入力=MESN (メッセージNo.)
- 11030 '
- 11070 IF MESN>36 THEN *RETURN_SNDMSG :'END
- 11080 RESTORE *MSGNAM
- 11090 FOR IMSG=1 TO MESN
- 11100 READ MSGD$
- 11110 NEXT IMSG
- 11120 MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
- 11130 LOAD@ MSGFN$,MSGD%
- 11140 PCMPLAY MSGD%:WAIT SWAIT\1+1
- 11150 *RETURN_SNDMSG :RETURN
- 11160 *MSGNAM :'////////// .SND File Name Data
- 11170 DATA "OHA1" :' 1 おはよう
- 11180 DATA "KONN" :' 2 こんにちわ
- 11190 DATA "KONBAN" :' 3 こんばんわ
- 11200 DATA "goyuku" :' 4 ごゆっくり
- 11210 DATA "GOKRO2" :' 5 ごくろうさま
- 11220 DATA "OTUKA" :' 6 お疲れさま
- 11230 DATA "OMATA" :' 7 おまたせ
- 11240 DATA "ARIGA2" :' 8 ありがとう
- 11250 DATA "RUNRUN" :' 9 るんるん
- 11260 DATA "DAMEDE" :' 10 だめでしょう
- 11270 DATA "IIDE1" :' 11 いいですか
- 11280 DATA "NANISI" :' 12 なにしてるの
- 11290 DATA "DAMEDA" :' 13 だめだめ
- 11300 DATA "OWARI" :' 14 終わりました
- 11310 DATA "SIBA" :' 15 しばらくお待ち下さい
- 11320 DATA "YOROSI" :' 16 よろしいですか
- 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
- 11340 DATA "ERANDE" :' 18 選んでください
- 11350 DATA "KAKNIN" :' 19 確認して下さい
- 11360 DATA "NYURYO" :' 20 入力してください
- 11370 DATA "IRA" :' 21 いらっしゃいませ
- 11380 DATA "OYASUM" :' 22 おやすみ
- 11390 DATA "ARIGA3" :' 23 ありがとうございました
- 11400 DATA "TYOTO" :' 24 ちょっと待って
- 11410 DATA "DAMEYO" :' 25 駄目よ
- 11420 DATA "YAMETE" :' 26 やめて
- 11430 DATA "TIGAU" :' 27 ちがうよ
- 11440 DATA "PINPON" :' 28 ぴんぽーん
- 11450 DATA "BUU" :' 29 ぶー
- 11460 DATA "MOUII" :' 30 もういいよう
- 11470 DATA "DEKITA" :' 31 できたよー
- 11480 DATA "IIDE2" :' 32 いいですか(2)
- 11490 DATA "YOSI" :' 33 よしなさい
- 11500 DATA "OYOSI" :' 34 およしなさい
- 11510 DATA "YAMENA" :' 35 やめなさい
- 11520 DATA "GOMEN" :' 36 ごめん
- 11530 '
- 12000 '////////// 年月日入力 & 曜日表示
- 12010 '
- 12045 *週検索
- 12050 DATA "SUN",2,"MON",7,"TUE",7,"WED",7,"THU",7,"FRI",7,"SAT",5
- 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
- 12080 RETURN
- 12090 '
- 12450 *WEEKN :'////////// 週NO.検索 'v1.3 bugfix 93.12.27
- 12460 U=0 :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN Output; WK DN
- 12470 IF YR/4-INT(YR/4)=0 THEN U=1
- 12480 DATA 0,31,28,31,30,31,30,31,31,30,31,30,31
- 12490 DATA 0,31,29,31,30,31,30,31,31,30,31,30,31
- 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
- 12505 'IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
- 12510 MDN=0:FOR IWEKN=1 TO MN:READ DN:MDN=MDN+DN:NEXT IWEKN:'1日までの日数
- 12515 READ MNDN :'当月の日数
- 12516 IF DY>MNDN THEN DY=MNDN :'V1.3!
- 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
- 12530 WK=(YDN#/7-INT(YDN#/7))*7
- 12540 RETURN
- 12550 '
- 12600 *年月日変更: 'v1.3 bugfix 93.12.27
- 12601 GOSUB *WEEKN
- 12602 DY=DY+DDEF
- 12604 IF DY>MNDN THEN DY=1 :MDEF=+1
- 12606 IF DY<1 THEN DY=31 :MDEF=-1
- 12610 MN=MN+MDEF
- 12620 IF MN>12 THEN MN=MN-12 :YDEF=+1
- 12630 IF MN<1 THEN MN=12+MN :YDEF=-1
- 12640 YR=YR+YDEF
- 12650 IF YR<0 THEN YR=10000+YR
- 12660 IF YR>9999 THEN YR=YR-10000
- 12665 GOSUB *WEEKN
- 12668 DY$=RIGHT$(STR$(100+DY),2)
- 12670 MN$=RIGHT$(STR$(100+MN),2)
- 12680 YR$=RIGHT$(STR$(10000+YR),4)
- 12690 RETURN
- 12695 '
- 12700 *本日の日付
- 12705 DEF FONT "システム 12ドット"
- 12710 TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
- 12720 IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
- 12730 TY$=RIGHT$(STR$(TY),4)
- 12740 TM$=MID$(DATE$,4,2):TM=VAL(TM$)
- 12750 TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
- 12760 YR=TY:MN=TM:DY=TD:GOSUB *週検索:IF CW=0 THEN CW=7
- 12770 TYMD$=TY$+"."+TM$+"."+TD$
- 12780 LINE(475,5)-(560,17),PSET,0,BF
- 12790 SYMBOL(476,6),TYMD$,.75!,.75!,7
- 12800 SYMBOL(542,6),WKM$,.75!,.75!,CW
- 12810 RETURN
- 12820 '
- 13000 '////////////////////////////////////////////////////////////////////
- 13001 ' LKEYIN v1.1a 全角文字移動改良 1993.02.12 T.Komura
- 13002 '--------- v1.2 挿入モードの変更他全面bugFIX 1993.08.04 T.Komura
- 13003 ' v2.0 グラフィックモード12dot用に改造 1994.07.30 T.Komura
- 13004 ' v2.1 マルチカラムに改造 1994.09.02 T.Komura
- 13005 ' v2.2 編集文字を初期表示するように改造1995.04.29 T.Komura
- 13006 '
- 13010 *LKEYIN :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
- 13020 ' 入力 = LX,LY : 表示開始座標 LG : 行数
- 13030 ' L$(ii): 初期文字列 LP : 行ピッチ
- 13040 ' LC : 表示文字色 lb : 非編集行文字色
- 13050 ' LL : 最大文字数 cbc : 背景色
- 13060 ' LINS : 挿入モード=1 出力=L$(ii) : 入力後の文字列
- 13070 '
- 13080 LCSRCL=6:LLINCL=4
- 13090 DEF FONT "システム 12ドット"
- 13100 ' CR MR ML INS DEL BS CAN
- 13120 CONSOLE 0,24,2
- 13130 CC$=CHR$(&H0D,&H1E,&H1F,&H1C,&H1D,&H12,&H7F,&H08,&H18)
- 13140 ' LMG$=SPACE$(LL):LMGD$=SPACE$(LL) :'2.1
- 13150 LA$=INKEY$:IF LA$<>"" THEN 13150
- 13160 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13170 LCSR=0:LGC=1 :'v2.1
- 13180 LINE(LX,LY)-(LX+LL*6+1,LY+11),PSET,%CBC,BF :'v2.2
- 13185 GET@A (LX,LY)-(LX+LL*6+1,LY+13),LMB# :'v2.0
- 13190 FOR LGII=1 TO LG:LXX=LX:LYY=LY+(LGII-1)*LP :'v2.1・・・・ 初期文字列表示
- 13200 PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13210 SYMBOL(LXX,LYY),L$(LGII),.75!,.75!,LB :'v2.1
- 13220 NEXT LGII :'v2.1
- 13230 *SETLG :'----------行セット :'v2.1
- 13240 LYY=LY+(LGC-1)*LP :LM$=L$(LGC) :'v2.1
- 13250 SYMBOL(LXX,LYY),L$(LGC),.75!,.75!,LC :'v2.1
- 13260 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.1
- 13270 LCSRX=LCSR:GOSUB *LCSRDX
- 13280 LMX$=LEFT$(LM$+SPACE$(LL),LL)
- 13290 GOSUB *LMREAD
- 13300 IF LMGB$="1" THEN GOSUB *LCSRDEC
- 13310 *IN1C:' ・・・・・・・・・・ 1 文字入力
- 13320 LA$=INKEY$:IF LA$="" THEN 13320
- 13330 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
- 13340 IF CLA=0 THEN 13360
- 13350 ON CLA GOTO *CR,*MU,*MD,*MR,*ML,*INS,*DEL,*BS,*CAN
- 13360 IF KANF=1 THEN *KANJI
- 13370 IF ALA<&H20 THEN BEEP:GOTO *IN1C
- 13380 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
- 13390 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
- 13400 GOTO *KANJI
- 13410 *ANK :' ・・・・・・・・・・ ANK 文字入力
- 13420 IF LINS=1 THEN 13440
- 13430 MID$(LMX$,LCSR+1,1)=LA$:GOTO 13450
- 13440 LMX$=LEFT$(LMX$,LCSR)+LA$+RIGHT$(LMX$,LL-LCSR)
- 13450 GOSUB *LCSRINC
- 13460 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13470 GOTO *IN1C
- 13480 *KANJI :' ・・・・・・・・・・ 漢字文字入力
- 13490 ON KANF+1 GOTO 13500,13530
- 13500 KANF=1:KANW$="":KANW$=LA$
- 13510 IF LCSR+1>=LL THEN KANF=0:BEEP
- 13520 GOSUB *LCSRD:GOTO *IN1C
- 13530 KANF=0:KANW$=KANW$+LA$
- 13540 IF LINS=1 THEN 13560
- 13550 MID$(LMX$,LCSR+1,2)=KANW$:GOTO 13570
- 13560 LMX$=LEFT$(LMX$,LCSR)+KANW$+RIGHT$(LMX$,LL-LCSR)
- 13570 GOSUB *LCSR2INC
- 13580 GOSUB *LMREAD1:GOSUB *LMXDSP
- 13590 GOTO *IN1C
- 13600 *CR :GOSUB *LMREAD:GOSUB *LCSRDX '////////// End
- 13610 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0 :'v2.1
- 13620 CONSOLE 0,24,0
- 13630 RETURN:'----------------------------------------------------------
- 13640 *MU :GOSUB *LMREAD2 '////////// up :v2.1
- 13645 *MU2:GOSUB *LMBDSP:LGC=LGC-1:IF LGC<1 THEN LGC=1
- 13655 GOTO *SETLG
- 13660 *MD :GOSUB *LMREAD2 '////////// down :v2.1
- 13665 *MD2:GOSUB *LMBDSP:LGC=LGC+1:IF LGC>LG THEN LGC=LG
- 13675 GOTO *SETLG
- 13680 *MR :GOSUB *LMREAD2 '////////// Right
- 13685 IF LMGF$="1" THEN GOSUB *LCSR2INC:GOTO *MUD :'v2.1
- 13690 GOSUB *LCSRINC :GOTO *MUD :'v2.1
- 13695 *ML :GOSUB *LMREAD2 '////////// Left
- 13700 IF LMGB$="2" THEN GOSUB *LCSR2DEC:GOTO *MUD :'v2.1
- 13705 GOSUB *LCSRDEC :GOTO *MUD :'v2.1
- 13710 *MUD:IF LCSC=0 THEN GOTO *IN1C '////////// line chg.ctrl:'v2.1
- 13715 IF LCSC=+1 THEN GOSUB *LMREAD2:LCSR=0 :GOTO *MD2
- 13720 IF LCSC=-1 THEN GOSUB *LMREAD2:LCSR=LL:GOTO *MU2
- 13725 *INS:GOSUB *LCSRDX:LINS=1-LINS '////////// Insert
- 13730 IF LINS=1 THEN CWDT=1 ELSE CWDT=5
- 13735 GOSUB *LCSRDX :GOTO *IN1C
- 13740 *DEL:GOSUB *LMREAD:LMX$=LEFT$(LMG$,LCSR) '////////// Delete
- 13745 IF LMGF$="1" THEN LDEF=2 ELSE LDEF=1
- 13750 LMX$=LMX$+MID$(LMG$,LCSR+LDEF+1,LL-LCSR-LDEF)+" "
- 13755 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13760 *BS :GOSUB *LMREAD '////////// BackSpace
- 13765 IF LCSR=0 THEN GOTO *IN1C
- 13770 IF LMGB$="2" THEN GOSUB *LCSR2DEC:LDEF=2:GOTO 13780
- 13775 GOSUB *LCSRDEC :LDEF=1:GOTO 13780
- 13780 LMX$=LEFT$(LMG$,LCSR)+RIGHT$(LMG$,LL-LCSR-LDEF)+" "
- 13785 GOSUB *LMREAD:GOSUB *LMXDSP :GOTO *IN1C
- 13790 *CAN :LMX$=SPACE$(LL) '////////// Clear
- 13795 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
- 13800 GOSUB *LMREAD :GOTO *IN1C
- 13805 *LMREAD: '////////// Disp Char Read
- 13810 LMGFX$=MID$(LMGDX$,LCSR+1,1)
- 13815 IF LMGFX$="2" OR LMGF$="2" THEN MID$(LMX$,LCSR+1,1)=" "
- 13820 *LMREAD1:LMGD$=""
- 13825 FOR II=1 TO KLEN(LMX$)
- 13830 LMG=KTYPE(LMX$,II)
- 13835 IF LMG=0 THEN LMD$="0" ELSE LMD$="12"
- 13840 LMGD$=LMGD$+LMD$
- 13845 NEXT II
- 13850 IF LEN(LMGD$)<=LL THEN 13860
- 13855 LMGD$=LEFT$(LMGD$,LL):LMX$=LEFT$(LMX$,LL)
- 13860 IF RIGHT$(LMGD$,1)<>"1" THEN 13870
- 13865 MID$(LMGD$,LL,1)="0":MID$(LMX$,LL,1)=" "
- 13870 *LMREAD2:LMGF$=MID$(LMGD$,LCSR+1,1)
- 13875 IF LCSR=0 THEN LMGB$="0" ELSE LMGB$=MID$(LMGD$,LCSR,1)
- 13880 LMG$=LMX$:LMGDX$=LMGD$:L$(LGC)=LMG$
- 13885 RETURN
- 13890 *LCSRD :LXC=(LX+6*LCSR ):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Disp
- 13895 *LCSRDX:LXC=(LX+6*LCSRX):LYC=LYY:GOSUB *LCSRL: 'v2.0 :'v2.1//// Csr Erace
- 13900 LCSRX=LCSR:RETURN
- 13905 *LCSRL :LINE(LXC,LYC+0)-(LXC+CWDT,LYC+12),XOR,LCSRCL,BF:RETURN
- 13910 *LCSRINC :LCSC=0:LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1:LCSC=+1
- 13915 GOSUB *LCSRD:RETURN
- 13920 *LCSR2INC:LCSC=0:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2:LCSC=+1
- 13925 GOSUB *LCSRD:RETURN
- 13930 *LCSRDEC :LCSC=0:LCSR=LCSR-1:IF LCSR<0 THEN LCSR=0 :LCSC=-1
- 13935 GOSUB *LCSRD:RETURN
- 13940 *LCSR2DEC:LCSC=0:LCSR=LCSR-2:IF LCSR<0 THEN LCSR=LCSR+2:LCSC=-1
- 13945 GOSUB *LCSRD:RETURN
- 13950 *LMXDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.0 :'v2.1
- 13955 LINE(LX,LYY+12)-(LX+(LL*6),LYY+12),XOR,LLINCL,BF :'v2.0
- 13960 SYMBOL(LX,LYY),LMX$,.75!,.75!,LC
- 13965 GOSUB *LCSRDX:RETURN
- 13970 *LMBDSP :PUT@A (LX,LYY)-(LX+LL*6+1,LYY+13),LMB# :'v2.1
- 13975 SYMBOL(LX,LYY),LMX$,.75!,.75!,LB:RETURN :'v2.1
- 13980 '-------------------------------------------------------------------
- 14000 'マウス,ウインドウ関係サブルーチン集 v1.0 1995.05.14
- 14010 '--------------------------------------------------
- 14020 '
- 14030 'マウスカーソル形状セット v1.0 1994.02.13
- 14040 *MCDSET
- 14050 MOUSE 2,MCAND$(MCN),MCDOT$(MCN),MC_X(MCN),MC_Y(MCN)
- 14060 RETURN
- 14070 *MCREAD
- 14080 RESTORE *MCDATA
- 14090 FOR II=1 TO 3
- 14100 FOR JJ=1 TO 32:MCAND$(II)="":MCDOT$(II)="":NEXT JJ
- 14110 READ MC_X(II),MC_Y(II)
- 14120 FOR JJ=1 TO 32:READ MCAND:MCAND$(II)=MCAND$(II)+CHR$(MCAND):NEXT JJ
- 14130 FOR JJ=1 TO 32:READ MCDOT:MCDOT$(II)=MCDOT$(II)+CHR$(MCDOT):NEXT JJ
- 14140 NEXT II
- 14150 RETURN
- 14160 *MCDATA
- 14170 '指 ////////////////////////////////////////
- 14171 DATA 0,0
- 14172 DATA &H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H83,&HFF' and
- 14173 DATA &HC0,&H3F,&HE0,&H07,&HF0,&H01,&HF8,&H00
- 14174 DATA &HF0,&H00,&HE0,&H00,&HE0,&H00,&HE0,&H00
- 14175 DATA &HE0,&H00,&HF0,&H00,&HF8,&H00,&HFC,&H00
- 14176 DATA &H00,&H00,&H60,&H00,&H30,&H00,&H18,&H00' dot
- 14177 DATA &H0C,&H00,&H06,&H80,&H03,&H50,&H01,&HAA
- 14178 DATA &H05,&HFE,&H04,&HFE,&H06,&HFE,&H07,&HFE
- 14179 DATA &H03,&HFF,&H01,&HFF,&H00,&H7F,&H00,&H1F
- 14180 'コーヒー///////////////////////////////////
- 14181 DATA 7,7
- 14182 DATA &HFF,&HFF,&HF2,&H4F,&HE4,&H9F,&HE4,&H9F' and
- 14183 DATA &HE6,&H1F,&HF2,&H4F,&HC0,&H07,&HC0,&H01
- 14184 DATA &HC0,&H06,&HC0,&H06,&HC0,&H05,&HC0,&H03
- 14185 DATA &HE0,&H0F,&H80,&H01,&HC0,&H03,&HE0,&H07
- 14186 DATA &H00,&H00,&H04,&H90,&H09,&H20,&H09,&H20' dot
- 14187 DATA &H08,&HA0,&H04,&H90,&H00,&H00,&H1F,&HF0
- 14188 DATA &H15,&HF0,&H13,&H30,&H15,&H30,&H1F,&HF0
- 14189 DATA &H0F,&HE0,&H00,&H00,&H1F,&HF8,&H00,&H00
- 14190 '待った //////////////////////////////////////
- 14191 DATA 7,7
- 14192 DATA &HF0,&H1F,&HC0,&H07,&H80,&H03,&H80,&H03' and
- 14193 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H00,&H01
- 14194 DATA &H00,&H01,&H00,&H01,&H00,&H01,&H80,&H03
- 14195 DATA &H80,&H03,&HC0,&H07,&HF0,&H1F,&HFF,&HFF
- 14196 DATA &H00,&H00,&H00,&H00,&H07,&HC0,&H1F,&H80' dot
- 14197 DATA &H1F,&H00,&H3E,&H08,&H3C,&H18,&H38,&H38
- 14198 DATA &H30,&H78,&H20,&HF8,&H01,&HF0,&H03,&HF0
- 14199 DATA &H07,&HC0,&H00,&H00,&H00,&H00,&H00,&H00
- 14200 '
- 14210 *MCDRAG 'ドラッグ -----------------------------------------------
- 14220 MOUSE 1,X_M,Y_M,1 :'現在位置にカーソルを設定
- 14225 MD_XB1=W_X1(G):MD_YB1=W_Y1(G) :MD_XC1=W_X1(G):MD_YC1=W_Y1(G) :'旧ウインドウ座標保持
- 14230 MD_XB2=W_X2(G):MD_YB2=W_Y2(G) :MD_XC2=W_X2(G):MD_YC2=W_Y2(G) :'旧ウインドウ座標保持
- 14235 GET@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SW#
- 14238 X1=X_M-W_X1(G)+W_XA(G):X2=X_M+W_XB(G)-W_X2(G):'最大移動域の設定
- 14239 Y1=Y_M-W_Y1(G)+W_YA(G):Y2=Y_M+W_YB(G)-W_Y2(G):'
- 14240 MOUSE 4,X1,Y1,X2,Y2 :'最大移動域の設定
- 14245 GOSUB *MD_WLINED
- 14250 IF MOUSE(2,0)=-1 THEN 14245 :'枠移動
- 14255 LINE(MD_XC1,MD_YC1)-(MD_XC2,MD_YC2),XOR,4,B,&HCCCC :'枠線消去
- 14260 PUT@A(MD_XB1,MD_YB1)-(MD_XB2,MD_YB2),MD_SB# :'旧ウインドウ背景表示
- 14265 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB# :'新ウインドウ背景保持
- 14270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SW# :'新ウインドウ描画
- 14275 MOUSE 4,0,0,639,479:WAIT SWAIT\4+1:RETURN
- 14280 *MD_WLINED
- 14285 MD_X_M=MOUSE(9) :MD_Y_M=MOUSE(10) :'移動量取得
- 14290 W_X1(G)=W_X1(G)+(MD_X_M):W_Y1(G)=W_Y1(G)+(MD_Y_M):'新座標計算
- 14295 W_X2(G)=W_X2(G)+(MD_X_M):W_Y2(G)=W_Y2(G)+(MD_Y_M)
- 14300 LINE(MD_XC1 ,MD_YC1 )-(MD_XC2 ,MD_YC2 ),XOR,4,B,&HCCCC :'枠線移動
- 14305 LINE(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),XOR,4,B,&HCCCC
- 14310 MD_XC1=W_X1(G):MD_YC1=W_Y1(G)
- 14315 MD_XC2=W_X2(G):MD_YC2=W_Y2(G)
- 14320 RETURN
- 14400 '------------------------------------------------------------------
- 14405 *ボタン座標読み取り
- 14410 RESTORE *ボタン座標:READ SWGN
- 14415 FOR G=1 TO SWGN
- 14420 READ SWN(G), W_X1(G),W_X2(G),W_Y1(G),W_Y2(G), W_XA(G),W_XB(G),W_YA(G),W_YB(G)
- 14425 FOR B=1 TO SWN(G):READ B_X1(G,B),B_X2(G,B),B_Y1(G,B),B_Y2(G,B):NEXT B
- 14430 NEXT G
- 14435 RETURN
- 14500 '-----------------------------------------------------------------
- 14505 *BTN_ONOFF:'ボタンON_OFF表示
- 14510 IF BST(G,B)=1 THEN BSC=15:BSB=1:GOTO 14520
- 14515 BSC=1:BSB=15
- 14520 X1=W_X1(G)+B_X1(G,B):X2=W_X1(G)+B_X2(G,B)
- 14521 Y1=W_Y1(G)+B_Y1(G,B):Y2=W_Y1(G)+B_Y2(G,B)
- 14522 CONNECT(X1,Y2)-(X2,Y2)-(X2,Y1),%BSC,PSET
- 14523 CONNECT(X1,Y2)-(X1,Y1)-(X2,Y1),%BSB,PSET
- 14530 IF BSNDOFF=1 THEN 14540 :' WAIT SWAIT\10+1:GOTO 14540
- 14535 IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT SWAIT\5+1
- 14540 BSNDOFF=0:RETURN
- 14600 '-----------------------------------------------------------------
- 14610 *MCSELECT:'マウスボタン選択
- 14620 SWERC=0:SWNO=0 :'リセット
- 14630 *クリック待ち
- 14640 IF MOUSE(2,0)=-1 THEN 14680 :'左クリック入力待ち
- 14650 IF MOUSE(2,1)=-1 THEN SWNO=-1:RETURN :'右クリックで終了
- 14660 IF MCKEY=1 THEN GOTO 14830 :'MCKEY=1: マウススキャン中断、キー入力受付
- 14670 GOTO *クリック待ち
- 14680 X_M=MOUSE(4,0):Y_M=MOUSE(5,0) :'座標取得
- 14690 FOR IMS=1 TO SWN(G) :'ボタン座標判定
- 14700 IF (X_M>W_X1(G)+B_X1(G,IMS)) AND (X_M<W_X1(G)+B_X2(G,IMS)) ELSE 14730
- 14710 IF (Y_M>W_Y1(G)+B_Y1(G,IMS)) AND (Y_M<W_Y1(G)+B_Y2(G,IMS)) ELSE 14730
- 14720 SWNO=IMS:IMS=SWN(G)+1
- 14730 NEXT IMS
- 14735 WAIT SWAIT\8+1 'FOR II=1 TO 500:NEXT II
- 14740 IF (SWPASS=1) OR (SWNO<>0) THEN 14830
- 14750 IF SWNO=0 THEN
- 14760 GOSUB *MCMIS:SWERC=SWERC+1 '誤指定警告表示
- 14770 IF SWERC>5 THEN
- 14780 MCN=3:GOSUB *MCDSET:MESN=12:GOSUB *SNDMSG '誤指定警告音声案内
- 14790 MCN=1:GOSUB *MCDSET
- 14800 ENDIF
- 14810 ENDIF
- 14820 GOTO *クリック待ち
- 14830 SWPASS=0:SW1T=0:MCKEY=0
- 14840 RETURN
- 14850 *MCMIS
- 14860 MCN=3:GOSUB *MCDSET:WAIT SWAIT\3+1:MCN=1:GOSUB *MCDSET
- 14870 RETURN
- 14880 '
- 14890 '
- 15000 '
- 15010 ' SAVE"TCLOCK.sub" :' 組み込み型 アナログ時計 V1.1
- 15020 ' 1991.05 T.KOMURA
- 15030 '--------------------------------------------------------------------
- 15040 '
- 15220 *時計表示:'///////////////////////////////////
- 15230 XCLK0=579:YCLK0=11:CLKR=9:PI=3.1415!
- 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
- 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
- 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
- 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
- 15280 GOSUB *短針表示
- 15290 GOSUB *長針表示
- 15300 GOSUB *秒針表示
- 15305 IF DCLOCKF=1 THEN GOSUB *DCLOCKD
- 15310 CLOCKINIT=1:DATX$=DATE$
- 15320 RETURN
- 15330 '
- 15340 *短針表示
- 15350 XHD1=XCLK0+(CLKR*.6!)*SIN(HRR):XHD2=XCLK0
- 15360 YHD1=YCLK0-(CLKR*.6!)*COS(HRR):YHD2=YCLK0
- 15370 IF CLOCKINIT=0 THEN 15400
- 15380 IF SCR<>0 THEN 15420
- 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
- 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
- 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
- 15420 RETURN
- 15430 *長針表示
- 15440 XMD1=XCLK0+(CLKR*.8!)*SIN(MNR):XMD2=XCLK0
- 15450 YMD1=YCLK0-(CLKR*.8!)*COS(MNR):YMD2=YCLK0
- 15460 IF CLOCKINIT=0 THEN 15490
- 15470 IF SCR<>0 THEN 15510
- 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
- 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
- 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
- 15510 RETURN
- 15520 *秒針表示
- 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
- 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
- 15550 IF CLOCKINIT=0 THEN 15570
- 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
- 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
- 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
- 15590 RETURN
- 15600 '////////////////////////////////////////////////////////////////////
- 15605 ' DIGITAL CLOCK v1.0 1995.05.24 T.Komura
- 15610 *DCLOCKREAD:'プログラム先頭で実施
- 15615 RESTORE *DCLOCKDATA
- 15620 FOR DGII=0 TO 9:FOR DGN=1 TO 7:READ DGP(DGII,DGN):NEXT:NEXT
- 15625 FOR DGII=1 TO 9:READ DGX(DGII),DGY(DGII):NEXT
- 15630 FOR DGII=1 TO 4:READ DGO(DGII):NEXT
- 15635 RETURN
- 15640 *DGCLOCK:'デジタル時計 -------------------------------
- 15645 G=6:SWNOX=SWNO:DGINIT=0:DGFC=15:DGBC=1
- 15650 GOSUB *DCLOCKLOAD:GOSUB *DCLOCKD:DCLOCKF=1
- 15655 *DGMCSEL
- 15660 GOSUB *MCSELECT:'マウスボタン選択
- 15665 IF SWNO=0 THEN *DGMCSEL
- 15670 IF SWNO<0 THEN SWNO=1:'右クリックで終了
- 15675 ' end drag
- 15680 ON SWNO GOTO *DGS01,*DGS02
- 15685 *DGS02:'drag
- 15690 DCLOCKF=0
- 15692 GOSUB *MCDRAG
- 15694 DCLOCKF=1
- 15695 GOTO *DGMCSEL
- 15700 *DGS01:'end
- 15705 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 15710 DCLOCKF=0
- 15715 GOSUB *DCLOCKCLR
- 15720 SWNO=SWNOX
- 15725 RETURN
- 15730 *DCLOCKLOAD
- 15735 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15740 MOUSE 1,,,0
- 15745 LOAD@ TIFDRV$+"\dclock.tif",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 15750 MOUSE 1,,,1:RETURN
- 15760 *DCLOCKCLR
- 15765 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 15770 RETURN
- 15775 '
- 15780 *DCLOCKD
- 15785 IF DGINIT=1 THEN 15795
- 15790 FOR DGII=1 TO 4:DGM(DGII)=10:NEXT DGII:DGINIT=1
- 15795 DG(1)=VAL(MID$(TIME$,1,1)):DG(2)=VAL(MID$(TIME$,2,1))
- 15800 DG(3)=VAL(MID$(TIME$,4,1)):DG(4)=VAL(MID$(TIME$,5,1))
- 15805 DGPT=1-DGPT
- 15810 FOR DGII=1 TO 4
- 15815 IF DG(DGII)=DGM(DGII) THEN 15840
- 15820 FOR DGJJ=1 TO 7
- 15825 IF DGP(DG(DGII),DGJJ)=1 THEN DGC=DGFC ELSE DGC=DGBC
- 15826 IF DGII=1 AND DG(1)=0 THEN DGC=DGBC
- 15830 PAINT(W_X1(G)+DGX(DGJJ)+DGO(DGII),W_Y1(G)+DGY(DGJJ)),%DGC,0
- 15835 NEXT DGJJ
- 15840 NEXT DGII
- 15841 IF DGPT=1 THEN DGC=10 ELSE DGC=DGBC
- 15842 PAINT(W_X1(G)+DGX(8),W_Y1(G)+DGY(8)),%DGC,0
- 15843 PAINT(W_X1(G)+DGX(9),W_Y1(G)+DGY(9)),%DGC,0
- 15845 FOR DGII=1 TO 4:DGM(DGII)=DG(DGII):NEXT DGII'
- 15850 RETURN
- 15855 '
- 18000 '------------------------------------------------------------------
- 18005 *HKHELP:' Copyrigit(C) T.Komura / HK2 /
- 18010 ' Version 1.0 1994.07.30 / helpプログラム /
- 18011 ' Version 2.0 1995.07.30 HK2ドラッグ対応
- 18015 'メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
- 18016 G=5:SWNOX=SWNO:DOCDC=6:DOCBC=8
- 18020 GOSUB *DOCTIFDSP:GOSUB *DOCFREAD
- 18026 MCN=1:GOSUB *MCDSET
- 18030 GOSUB *DOC初期表示
- 18035 *DC_MSINSEL
- 18040 SWPASS=1:GOSUB *MCSELECT:'マウスボタン選択
- 18042 IF SWNO=0 THEN GOSUB *DC_他エリア判定
- 18043 IF SWNO<0 THEN SWNO=5:'右クリックで終了
- 18045 IF SWNO>7 OR SWNO=0 THEN *DC_MSINSEL
- 18050 IF SWNO=5 THEN GOTO *SDC_05
- 18055 IF SWNO=6 THEN GOTO *SDC_06
- 18060 IF SWNO=7 THEN GOTO *SDC_07
- 18065 GOTO *DOCCTRL
- 18070 *DOCCTRL
- 18075 B=SWNO:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 18080 DCCD=SWNO:GOSUB *DOC表示制御
- 18085 B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 18090 GOTO *DC_MSINSEL
- 18095 *SDC_06: GOSUB *MCDRAG :GOTO *DC_MSINSEL
- 18100 *SDC_07:DCCD=5:GOSUB *DOC表示制御:GOTO *DC_MSINSEL
- 18105 *SDC_05:'終了
- 18110 B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 18115 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18120 DOCCS=0:SWNO=SWNOX
- 18122 RETURN:'///////////////////////////////////////////////////
- 18125 '
- 18130 'sub routine---------------------------------------------
- 18135 *DOCTIFDSP
- 18137 MOUSE 1,,,0
- 18140 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 18145 LOAD@ TIFDRV$+"\hk2help.tif",(W_X1(G),W_Y1(G))
- 18165 MOUSE 1,,,1:GOSUB *DOC名称表示
- 18170 RETURN
- 18175 *DOCFREAD:'helpファイル読み込み
- 18177 MCN=2:GOSUB *MCDSET
- 18180 DOCN=0:OPEN "I",#1,PRGDRV$+"\HELPF"+DOCF$
- 18185 IF EOF(1)=-1 THEN 18200
- 18190 DOCN=DOCN+1:LINE INPUT #1,DOC$(DOCN)
- 18195 GOTO 18185
- 18200 CLOSE #1:RETURN
- 18205 *DOC指定行表示
- 18210 GOSUB *DOCカーソル表示
- 18220 FOR DN=SDN TO EDN
- 18225 XDC=W_X1(G)+8:YDC=W_Y1(G)+27+DCL*12
- 18230 SYMBOL(XDC,YDC),DOC$(DN),.75!,.75!,7
- 18235 DCL=DCL+1
- 18240 NEXT DN:RETURN
- 18245 *DOC初期表示
- 18250 SDN=1:EDN=24:DCL=0:DSP=1:GOSUB *DOC指定行表示
- 18255 RETURN
- 18260 *DOC表示制御:'///////////////////////////////////////
- 18265 ON DCCD GOTO *DCC3,*DCC1,*DCC2,*DCC4,*DCC5
- 18270 *DCC1:'------ 前行
- 18275 DSP=DSP-1 :IF DSP<1 THEN DSP=1 :RETURN
- 18280 SDN=DSP :GOSUB *DOC下シフト
- 18285 EDN=SDN :DCL=0 :GOSUB *DOC指定行表示 :RETURN
- 18290 *DCC2:'------ 次行
- 18295 DSP=DSP+1 :IF DSP+23>DOCN THEN DSP=DSP-1:RETURN
- 18300 SDN=DSP+23: GOSUB *DOC上シフト
- 18305 EDN=SDN :DCL=23:GOSUB *DOC指定行表示 :RETURN
- 18310 *DCC3:'------ 前頁
- 18315 DSP=DSP-24:IF DSP<1 THEN DSP=1
- 18320 GOTO *DCC51
- 18325 *DCC4:'------ 次頁
- 18330 DSP=DSP+24:IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18335 GOTO *DCC51
- 18340 *DCC5:'------ カーソル指定
- 18345 DSP=((INT(DOCN*DOCR))\24)*24+1
- 18350 IF DSP>DOCN THEN DSP=(DOCN\24)*24+1
- 18355 *DCC51
- 18360 SDN=DSP :EDN=SDN+23
- 18365 IF EDN>DOCN THEN EDN=EDN-1:GOTO 18365
- 18370 LINE (W_X1(G)+6,W_Y1(G)+27)-(W_X1(G)+492,W_Y1(G)+27+12*24),PSET,%DOCBC,BF
- 18375 DCL=0:GOSUB *DOC指定行表示 :RETURN
- 18380 '------------------------------------------------------
- 18385 *DOC上シフト
- 18386 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18390 GET@A(X1,Y1+12*1 )-(X2,Y2+12*24),HLPC#
- 18395 LINE (X1,Y1+12*23)-(X2,Y2+12*24),PSET,%DOCBC,BF
- 18400 PUT@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18405 RETURN
- 18410 *DOC下シフト
- 18411 X1=W_X1(G)+6:Y1=W_Y1(G)+27 :X2=W_X1(G)+492:Y2=Y1
- 18415 GET@A(X1,Y1 )-(X2,Y2+12*23),HLPC#
- 18420 LINE (X1,Y1 )-(X2,Y2+12*1 ),PSET,%DOCBC,BF
- 18425 PUT@A(X1,Y1+12*1)-(X2,Y2+12*24),HLPC#
- 18430 RETURN
- 18435 *DOCカーソル表示
- 18440 XDC1 =W_X1(G)+500:XDC2=W_X1(G)+511
- 18445 YDC1 =W_Y1(G)+53+INT(233*((DSP-1) /DOCN))
- 18450 YDC2 =W_Y1(G)+53+INT(233*((DSP+23) /DOCN))
- 18451 A=W_Y1(G)+B_Y1(G,3):IF YDC2>=A THEN YDC2=A-1
- 18455 YDC1X=W_Y1(G)+53+INT(233*((DSPX-1) /DOCN))
- 18460 YDC2X=W_Y1(G)+53+INT(233*((DSPX+23)/DOCN))
- 18461 A=W_Y1(G)+B_Y1(G,3):IF YDC2X>=A THEN YDC2X=A-1
- 18465 IF DOCCS=1 THEN 18470 ELSE DOCCS=1:GOTO 18475
- 18470 LINE(XDC1,YDC1X)-(XDC2,YDC2X),XOR,5,BF
- 18475 LINE(XDC1,YDC1 )-(XDC2,YDC2 ),XOR,5,BF
- 18480 DSPX=DSP :RETURN
- 18485 *DOC名称表示
- 18490 XDC=W_X1(G)+427:YDC=W_Y1(G)+7
- 18495 DOCD$=RIGHT$(DOCF$,LEN(DOCF$)-1)
- 18500 SYMBOL(XDC,YDC),DOCD$,.75!,.75!,%DOCDC
- 18505 RETURN
- 18810 *DC_他エリア判定
- 18830 IF (X_M>(W_X1(G)+499) AND X_M<(W_X1(G)+512)) ELSE 18845
- 18835 IF (Y_M>(W_Y1(G)+ 53) AND Y_M<(W_Y1(G)+288)) ELSE 18845
- 18840 DOCR=(Y_M-(W_Y1(G)+53))/235:SWNO=7
- 18845 RETURN
- 18850 '
- 19000 '
- 19010 '//////////////////////////////////////////////////////////////
- 19020 *ERROR:' エラー処理サブルーチン V1.10 1990.11.08 T.Komura
- 19030 '
- 19040 '
- 19050 IF ERR=53 THEN *IOERR
- 19060 IF ERR=63 THEN *FILNOF
- 19070 IF ERR=67 THEN *DSKFUL
- 19080 IF ERR=71 THEN *DSKUNF
- 19090 IF ERR=72 THEN *DSKOFF
- 19100 IF ERR=73 THEN *DSKWP
- 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
- 19120 GOSUB *ERMSG
- 19130 STOP
- 19140 '////////// エラー処理
- 19150 *IOERR
- 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
- 19170 GOSUB *ERMSG:RESUME
- 19180 *DSKFUL
- 19190 ERMES$="ディスクが満杯です。 交換後、"
- 19200 GOSUB *ERMSG:RESUME
- 19210 *DSKUNF
- 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
- 19230 GOSUB *ERMSG:RESUME
- 19240 *DSKOFF
- 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
- 19260 GOSUB *ERMSG:RESUME
- 19270 *DSKWP
- 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
- 19290 GOSUB *ERMSG:RESUME
- 19300 *FILNOF
- 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
- 19320 GOSUB *ERMSG:RESUME
- 19330 '
- 19340 *ERMSG:'////////// エラーメッセージ
- 19355 LINE(0,465)-(639,479),PSET,0,BF
- 19360 SYMBOL(0,465),ERMES$+"[実行]キーを押してね!",.75!,.75!,2
- 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
- 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
- 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
- 19400 LINE(0,465)-(639,479),PSET,0,BF
- 19410 SYMBOL(0,465),"エラー処理を終わります。",.75!,.75!,6
- 19420 RETURN
- 19430 '
- 19440 '
- 19450 '
- 20000 '------------------------------------------------------------------
- 20010 ' CUSTOM SUB ROUTINE FOR "HKSRCH.BAS"
- 20020 '------------------------------------------------------------------
- 20100 *表紙表示
- 20120 DEF FONT "システム 12ドット"
- 20130 LOAD@ TIFDRV$+"\HK2SRC.TIF",(0,0)
- 20140 MESN=1:GOSUB *MESDSP
- 20141 G=1:B=3:BST(G,B)=1:BSNDOFF=1:GOSUB *BTN_ONOFF
- 20145 ' INTERVAL ON
- 20160 RETURN
- 20190 '
- 20300 *検索年月表示
- 20310 G=2:SRYR$=RIGHT$(STR$(SRYR),4)
- 20315 NBN=4:NBA$=SRYR$:GOSUB *数字漢字変換:KYR$=NBK$
- 20320 SRMN$=RIGHT$(STR$(100+SRMN),2)
- 20325 NBN=2:NBA$=SRMN$:GOSUB *数字漢字変換:KMN$=NBK$
- 20340 DEF FONT "システム 16ドット"
- 20350 X=W_X1(G)+88:Y=W_Y1(G)+31+(SRCIN-1)*23
- 20355 LINE(X,Y)-(X+16*4,Y+15),PSET,%8,BF
- 20356 SYMBOL(X,Y),KYR$,1,1,7
- 20360 X=W_X1(G)+224:Y=W_Y1(G)+31+(SRCIN-1)*23
- 20365 LINE(X,Y)-(X+16*2,Y+15),PSET,%8,BF
- 20366 SYMBOL(X,Y),KMN$,1,1,7
- 20370 DEF FONT "システム 12ドット"
- 20380 RETURN
- 20390 '
- 20695 '
- 20700 *検索条件枠表示
- 20710 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 20715 G=2:MOUSE 1,,,0
- 20716 LOAD@ TIFDRV$+"\HK2SRCS.TIF",(W_X1(G),W_Y1(G))
- 20717 MOUSE 1,,,1
- 20720 SYMBOL(W_X1(G)+87,W_Y1(G)+9),SMODE$(SMODE),.75!,.75!,0
- 20722 FOR II=1 TO 15
- 20723 X=W_X1(G)+B_X1(G,II+CTRLB2+1)+4
- 20724 Y=W_Y1(G)+B_Y1(G,II+CTRLB2+1)+2
- 20725 IF II>3 AND II<8 THEN C=1 ELSE C=0
- 20726 SYMBOL(X,Y),CFI$(II),.75!,.75!,C
- 20728 NEXT II
- 20730 FOR II=1 TO 5
- 20732 IF SMOPT(SMODE,II)=0 THEN C=4 ELSE C=15
- 20736 SYMBOL(W_X1(G)+OPTX(II),W_Y1(G)+OPTY(II)),"●",.75!,.75!,%C
- 20738 NEXT II
- 20740 GOSUB *辞書入力スイッチ
- 20748 RETURN
- 20750 *検索条件枠消去
- 20770 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 20785 RETURN
- 20790 '
- 20800 *検索条件読み込み
- 20810 GOSUB *SRCSGET
- 20820 SRYR=SR1YR:SRMN=SR1MN:SRCIN=1:GOSUB *検索年月表示
- 20825 YRS=SRYR:MNS=SRMN
- 20830 SRYR=SR2YR:SRMN=SR2MN:SRCIN=2:GOSUB *検索年月表示
- 20835 YRE=SRYR:MNE=SRMN
- 20840 X=W_X1(G)+86 :Y=W_Y1(G)+84 :LINE(X,Y)-(X+189 ,Y+12),PSET,%8,BF
- 20845 SYMBOL(X,Y),SX$(5),.75!,.75!,7
- 20850 X=W_X1(G)+88 :Y=W_Y1(G)+107:LINE(X,Y)-(X+6*10,Y+12),PSET,%8,BF
- 20855 SYMBOL(X+12,Y),SX$(6),.75!,.75!,7
- 20860 X=W_X1(G)+217:Y=W_Y1(G)+107:LINE(X,Y)-(X+6*10,Y+12),PSET,%8,BF
- 20865 SYMBOL(X+12,Y),SX$(7),.75!,.75!,7
- 20870 SX8=0:SX8X=SX8:SX$(8)=SPACE$(2):SITM=0
- 20880 'G=2:B=SX8B:BST(G,B)=1:GOSUB *btn_onoff
- 20890 RETURN
- 20895 '
- 20900 *検索条件保存
- 20910 GOSUB *SRCSPUT
- 20920 RETURN
- 20930 '
- 21000 *検索条件設定
- 21005 G=2:ITMMIN=16:'項目ボタンの最小値
- 21010 GOSUB *検索条件枠表示
- 21020 GOSUB *検索条件読み込み
- 21030 MESN=3:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
- 21040 G=2:GOSUB *MCSELECT
- 21042 IF SWNO<0 THEN SWNO=2
- 21045 IF SWNO=15 THEN GOSUB *MCDRAG:GOTO 21040
- 21050 IF SWNO>=ITMMIN THEN *SRCS項目選択
- 21055 IF SWNO>10 THEN 21065
- 21060 ON SWNO GOTO *SI01,*SI02,*SI03,*SI04,*SI05,*SI06,*SI07,*SI08,*SI09,*SI10
- 21065 ON SWNO-10 GOTO *SI11,*SI12,*SI13,*SI14
- 21090 '//////////////////////////////////////////////////////////////
- 21100 *SI03:YDEF=+1:MDEF= 0:GOTO 21140
- 21110 *SI04:YDEF=-1:MDEF= 0:GOTO 21140
- 21120 *SI05:YDEF= 0:MDEF=+1:GOTO 21140
- 21130 *SI06:YDEF= 0:MDEF=-1:GOTO 21140
- 21140 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21150 SRCIN=1:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21185
- 21160 YR=SR1YR:MN=SR1MN:GOSUB *年月日変更:SR1YR=YR:SR1MN=MN
- 21170 SX$(1)=YR$:SX$(2)=MN$:YRS=YR:MNS=MN
- 21180 SRYR=SR1YR:SRMN=SR1MN:GOSUB *検索年月表示
- 21185 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21190 GOTO 21040
- 21200 *SI07:YDEF=+1:MDEF= 0:GOTO 21240
- 21210 *SI08:YDEF=-1:MDEF= 0:GOTO 21240
- 21220 *SI09:YDEF= 0:MDEF=+1:GOTO 21240
- 21230 *SI10:YDEF= 0:MDEF=-1:GOTO 21240
- 21240 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21250 SRCIN=2:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21285
- 21260 YR=SR2YR:MN=SR2MN:GOSUB *年月日変更:SR2YR=YR:SR2MN=MN
- 21270 SX$(3)=YR$:SX$(4)=MN$:YRE=YR:MNE=MN
- 21280 SRYR=SR2YR:SRMN=SR2MN:GOSUB *検索年月表示
- 21285 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21290 GOTO 21040
- 21300 *SI11:'キーワード入力
- 21310 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21320 SRCIN=3:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21385
- 21322 IF DICSF=0 THEN 21330
- 21324 IF SITM<2 OR SITM>16 THEN 21330
- 21326 SWNOY=SWNO:GOSUB *辞書入力:SWNO=SWNOY
- 21328 IF ENDF=1 THEN 21330 ELSE 21360
- 21330 LX=W_X1(G)+86:LY=W_Y1(G)+84:LC=4:CBC=8::LL=32:LG=1:LP=0
- 21340 L$(1)=SX$(5):LINS=1:GOSUB *LKEYIN
- 21350 SX$(5)=L$(1)
- 21360 SYMBOL(LX,LY),SX$(5),.75!,.75!,7
- 21385 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21390 GOTO 21040
- 21400 *SI12:'金額下限
- 21410 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21420 SRCIN=4:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21485
- 21430 LX=W_X1(G)+100:LY=W_Y1(G)+107:LC=4:CBC=8:LL=8:LG=1:LP=0
- 21440 L$(1)=SX$(6):LINS=0:GOSUB *LKEYIN
- 21450 YNL#=VAL(L$(1)):SX$(6)=RIGHT$(SPACE$(8)+STR$(YNL#),8)
- 21460 LINE(LX,LY)-(LX+6*8,LY+11),PSET,%8,BF
- 21470 SYMBOL(LX,LY),SX$(6),.75!,.75!,7
- 21485 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21490 GOTO 21040
- 21500 *SI13:'金額上限
- 21510 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21520 SRCIN=4:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21585
- 21530 LX=W_X1(G)+229:LY=W_Y1(G)+107:LC=4:CBC=8:LL=8:LG=1:LP=0
- 21540 L$(1)=SX$(7):LINS=0:GOSUB *LKEYIN
- 21550 YNH#=VAL(L$(1)):SX$(7)=RIGHT$(SPACE$(8)+STR$(YNH#),8)
- 21560 LINE(LX,LY)-(LX+6*8,LY+11),PSET,%8,BF
- 21570 SYMBOL(LX,LY),SX$(7),.75!,.75!,7
- 21585 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21590 GOTO 21040
- 21600 *SRCS項目選択
- 21605 SRCIN=5:IF SMOPT(SMODE,SRCIN)=0 THEN GOSUB *SELERR:GOTO 21690
- 21610 SX8=SWNO:IF SX8X=0 THEN 21620
- 21615 G=2:B=SX8X:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21620 G=2:B=SX8 :BST(G,B)=1:GOSUB *BTN_ONOFF
- 21630 SX8X=SX8
- 21640 SX$(8)=RIGHT$(STR$(SX8-(ITMMIN-1)),2):SITM=VAL(SX$(8))
- 21690 GOTO 21040 :'出来事=1・給与=2・・・・
- 21700 *SI14:'辞書使用スイッチ -----------------------
- 21710 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21720 IF DICSF=0 THEN MESN=21 ELSE MESN=22
- 21730 GOSUB *MESDSP
- 21740 DICSF=1-DICSF
- 21750 IF DICSF=1 AND DICEXF=0 THEN GOSUB *DICREAD
- 21760 GOSUB *辞書入力スイッチ'
- 21770 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21780 GOTO 21030
- 21800 *SELERR
- 21810 MESN=6:GOSUB *MESDSP:MESN=13:GOSUB *SNDMSG
- 21820 FOR II=1 TO 5000:NEXT II
- 21825 MESN=3:GOSUB *MESDSP
- 21830 RETURN
- 21840 *SI01'
- 21845 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 21850 YRS$=RIGHT$(STR$(10000+YRS),4)
- 21851 MNS$=RIGHT$(STR$(100+MNS),2):IYM$=YRS$+MNS$:GOSUB *HKISRC
- 21852 IF FIDX=0 THEN MESN=15:GOSUB *VALERR:GOTO 21950:'NG
- 21854 YRE$=RIGHT$(STR$(10000+YRE),4)
- 21855 MNE$=RIGHT$(STR$(100+MNE),2):IYM$=YRE$+MNE$:GOSUB *HKISRC
- 21856 IF FIDX=0 THEN MESN=16:GOSUB *VALERR:GOTO 21950:'NG
- 21860 IF SMOPT(SMODE,2)=0 THEN 21880 :'?
- 21870 IF (YRS*12+MNS)<=(YRE*12+MNE) THEN 21880 :'?
- 21875 MESN=7:GOSUB *VALERR:GOTO 21950 :'NG
- 21880 IF SMOPT(SMODE,4)=0 THEN 21900 :'?
- 21890 IF YNL#<=YNH# THEN 21900 :'?
- 21895 MESN=8:GOSUB *VALERR:GOTO 21950 :'NG
- 21900 IF SITM=0 THEN MESN=11:GOSUB *VALERR:GOTO 21950:'NG
- 21910 IF SMODE<>2 THEN 21920 :'?
- 21915 IF SITM=1 THEN MESN=10:GOSUB *VALERR:GOTO 21950:'NG
- 21920 IF SMODE<>3 THEN 21930 :'?
- 21925 IF SITM=1 THEN MESN=10:GOSUB *VALERR:GOTO 21950:'NG
- 21930 IF SMODE<>4 THEN *SIEND :'OK
- 21940 IF SITM>17 THEN MESN=10:GOSUB *VALERR:GOTO 21950:'NG
- 21945 GOTO *SIEND :'OK
- 21950 *SIRETRY
- 21960 G=2:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 21970 GOTO 21040
- 22000 *SI02'
- 22005 G=2:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 22010 SRCCAN=1:GOTO 22170
- 22015 MESN=12:GOSUB *MESDSP
- 22020 CMES$="検索条件をファイルに保存":GOSUB *確認
- 22030 IF SWNO=1 THEN 22160 ELSE 22170
- 22100 *VALERR
- 22110 GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
- 22130 FOR II=1 TO 8000:NEXT II
- 22135 MESN=3:GOSUB *MESDSP
- 22140 RETURN
- 22150 *SIEND
- 22155 SRCCAN=0
- 22160 GOSUB *検索条件保存
- 22170 GOSUB *検索条件枠消去
- 22180 RETURN
- 22190 '
- 22200 *検索条件表示
- 22204 DEF FONT "システム 12ドット"
- 22205 LINE(147,105)-(595,120),PSET,7,BF
- 22206 IF SMODE=4 THEN 22215
- 22210 SRCYM$=SX$(1)+"."+SX$(2)+"→"+SX$(3)+"."+SX$(4):GOTO 22220
- 22215 SRCYM$=SX$(1)+"."+SX$(2)+"→"+SX$(1)+"."+SX$(2)
- 22220 LINE(430,36)-(530,48),PSET,%8,BF:SYMBOL(432,37),SRCYM$,.75!,.75!,4
- 22230 IF SITM=1 THEN 22245
- 22240 SCOM1$="| | 金 額 | コメント":GOTO 22250
- 22245 SCOM1$="| 出 来 事"
- 22250 SYMBOL(148,107),SCOM1$,.75!,.75!,0
- 22255 IF SITM=1 THEN 22270
- 22260 SYMBOL(154,107),ITEM$(SITM),.75!,.75!,ITEMC(SITM)
- 22270 LINE(177,80)-(368,93),PSET,0,BF
- 22272 IF SMODE=2 OR SMODE=4 THEN 22280
- 22274 SYMBOL(177,81),SX$(5),.75!,.75!,4
- 22280 LINE(432,80)-(495,93),PSET,0,BF
- 22282 LINE(531,80)-(594,93),PSET,0,BF
- 22284 IF SITEM=1 OR SMODE=1 OR SMODE=4 THEN 22300
- 22290 SYMBOL(440,82),SX$(6),.75!,.75!,5
- 22294 SYMBOL(541,82),SX$(7),.75!,.75!,5
- 22300 RETURN
- 22310 '
- 22320 *検索条件消去
- 22330 LINE(430,36)-(530,48),PSET,%8,BF
- 22332 LINE(177,80)-(368,93),PSET,0,BF
- 22334 LINE(432,80)-(495,93),PSET,0,BF
- 22336 LINE(531,80)-(594,93),PSET,0,BF
- 22340 LINE(147,105)-(595,120),PSET,7,BF
- 22350 RETURN
- 22360 '
- 23000 *キーワード検出
- 23010 KEYWN=0:FOR II=1 TO 16:KEYS$(II)="":NEXT II
- 23020 KEYW$=SX$(5)
- 23030 SPN=INSTR(KEYW$," ")
- 23035 IF SPN=0 THEN 23050
- 23040 IF SPN=1 THEN RETURN
- 23045 KEYW$=LEFT$(KEYW$,SPN-1)
- 23050 FOR II=1 TO 16
- 23060 SLN1=INSTR(KEYW$,"/"):SLN2=INSTR(KEYW$,"・")
- 23061 IF SLN1=0 THEN SLN=SLN2: GOTO 23070
- 23062 IF SLN2=0 THEN SLN=SLN1: GOTO 23070
- 23065 IF SLN1<SLN2 THEN SLN=SLN1 ELSE SLN=SLN2
- 23070 IF SLN<>0 THEN 23085
- 23080 KEYS$(II)=KEYW$:KEYWN=II:II=17:GOTO 23120
- 23085 KEYL=LEN(KEYW$)
- 23090 IF SLN=1 THEN KEYW$=RIGHT$(KEYW$,KEYL-1):GOTO 23120
- 23100 KEYS$(II)=LEFT$(KEYW$,SLN-1)
- 23110 KEYW$=RIGHT$(KEYW$,KEYL-SLN)
- 23120 NEXT II
- 23125 ' COLOR 1:FOR II=1 TO 5:PRINT "/";KEYS$(II);"/":NEXT:PRINT KEYWN:STOP
- 23130 RETURN
- 23140 '
- 23200 *検索データ検出
- 23210 FOR II=0 TO 15:SRD(II)=0:NEXT II
- 23220 IF SITM<>17 THEN 23240
- 23230 FOR II=1 TO 3:SRD(II)=1:NEXT II:GOTO 23310
- 23240 IF SITM<>18 THEN 23260
- 23250 FOR II=4 TO 7:SRD(II)=1:NEXT II:GOTO 23310
- 23260 IF SITM<>19 THEN 23280
- 23270 FOR II=4 TO 15:SRD(II)=1:NEXT II:GOTO 23310
- 23280 IF SITM<>20 THEN 23300
- 23290 FOR II=1 TO 15:SRD(II)=1:NEXT II:GOTO 23310
- 23300 SRD(SITM-1)=1
- 23310 'COLOR 1:FOR II=0 TO 15:PRINT II;"---";SRD(II):NEXT II:STOP
- 23315 RETURN
- 23320 '
- 23400 *検索年月日更新
- 23405 IF SMODE=4 THEN SRCCNT=0:RETURN
- 23410 YR=YRM:MN=MNM:YDEF=0:MDEF=+1
- 23420 GOSUB *年月日変更
- 23430 IF (YR*12+MN)<=(YRE*12+MNE) THEN 23440
- 23435 SRCCNT=0:RETURN
- 23440 IYM$=YR$+MN$
- 23450 SRCCNT=1
- 23460 RETURN
- 23470 '
- 23500 *検索中止
- 23510 SRCABT=1
- 23520 RDY=32
- 23540 RETURN 25390
- 23550 '
- 25000 *検索実行
- 25010 IF SMODE=1 THEN KEYS=1:YENS=0:ALLS=0
- 25011 IF SMODE=2 THEN KEYS=0:YENS=1:ALLS=0
- 25012 IF SMODE=3 THEN KEYS=1:YENS=1:ALLS=0
- 25013 IF SMODE=4 THEN KEYS=0:YENS=0:ALLS=1
- 25015 MCN=2:GOSUB *MCDSET
- 25020 IF KEYS=0 THEN 25030
- 25025 GOSUB *キーワード検出
- 25030 GOSUB *検索データ検出
- 25040 MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
- 25050 GOSUB *SRCROPN:FLN$=DRV$+PATH$+"\SRCW.DAT"
- 25060 CLOSE :KILL FLN$
- 25100 RSR=0:SRCABT=0
- 25110 IYM$=YRS$+MNS$
- 25114 PCMAX=((YRE*12+MNE)-(YRS*12+MNS)+1)*31:PCCUR=0
- 25115 PCCD=1:PCMES$=SMODE$(SMODE)+" 実行中":GOSUB *PROCD
- 25120 GOSUB *HKISRC
- 25125 YRM$=RIGHT$(STR$(10000+YRM),4)
- 25126 MNM$=RIGHT$(STR$(100+MNM),2)
- 25130 IF FIDX=0 THEN 25400
- 25135 KEY(10) ON
- 25140 FOR RDY=1 TO 31
- 25145 GOSUB *検索アクセス表示
- 25150 GOSUB *HKDGET
- 25160 PCCD=3:PCCUR=PCCUR+1:PCINT=1:GOSUB *PROCD
- 25200 IF ALLS=1 THEN GOSUB *無条件検索:GOTO 25380
- 25210 IF KEYS=1 THEN GOSUB *キーデータ検索
- 25220 IF YENS=1 THEN GOSUB *金額データ検索
- 25380 NEXT RDY:KEY(10) OFF
- 25390 IF SRCABT=1 THEN 25415
- 25400 GOSUB *検索年月日更新
- 25410 IF SRCCNT=1 THEN 25120
- 25415 PCCD=2:GOSUB *PROCD
- 25420 MCN=1:GOSUB *MCDSET
- 25430 RETURN
- 25480 '
- 25500 *無条件検索
- 25510 UX$(1)=YRM$+"."+MNM$+"."+RIGHT$(STR$(100+RDY),2)
- 25520 YR=YRM:MN=MNM:DY=RDY:GOSUB *週検索
- 25525 IF RDY>MNDN THEN RETURN
- 25530 IF SITM=1 THEN 25590
- 25540 UX$(2)=WKM$
- 25550 UX$(3)=ITEM$(SITM)
- 25560 UX$(4)=RIGHT$(DYN$(SITM-1),8)
- 25570 UX$(5)=DRM$(SITM-1)
- 25580 GOTO 25610
- 25590 VX$(1)=UX$(1):VX$(2)=WKM$ :VX$(3)= LEFT$(DEV$,64)
- 25595 GOSUB *検索データ保存
- 25600 VX$(1)=UX$(1):VX$(2)=" ":VX$(3)=RIGHT$(DEV$,64)
- 25605 '
- 25610 GOSUB *検索データ保存
- 25620 RETURN'
- 25630 '
- 25700 *キーデータ検索
- 25704 FOR II=0 TO 15:FKEYS(II)=0:NEXT II
- 25705 FOR SIT=0 TO 15:FDATA=0
- 25706 IF SRD(SIT)=0 THEN 25780
- 25710 IF KEYWN=0 THEN FDATA=1:GOTO 25775
- 25720 FOR II=1 TO KEYWN
- 25725 IF SITM=1 THEN 25740
- 25730 IF INSTR(DRM$(SIT),KEYS$(II))=0 THEN 25760 ELSE 25750
- 25740 IF INSTR(DEV$ ,KEYS$(II))=0 THEN 25760 ELSE 25750
- 25750 FDATA=1:FKEYS(SIT)=1:II=KEYWN+1
- 25760 NEXT II
- 25770 IF FDATA=0 THEN 25780
- 25775 IF YENS=1 THEN 25780
- 25776 SITMX=SITM:SITM=SIT+1:GOSUB *無条件検索:SITM=SITMX
- 25780 NEXT SIT
- 25790 RETURN
- 25795 '
- 25800 *金額データ検索
- 25805 FOR SIT=0 TO 15:FDATA=0
- 25806 IF SRD(SIT)=0 THEN 25880
- 25830 IF DYN#(SIT)<YNL# THEN 25880
- 25840 IF DYN#(SIT)>YNH# THEN 25880
- 25850 FDATA=1
- 25875 IF KEYS=0 THEN 25877
- 25876 IF FKEYS(SIT)=0 THEN 25880
- 25877 SITMX=SITM:SITM=SIT+1:GOSUB *無条件検索:SITM=SITMX
- 25880 NEXT SIT
- 25890 RETURN
- 26130 '
- 26200 *検索データSAVE
- 26210 IF SITM=1 THEN 26230
- 26220 GOSUB *SRCRPUT1:RETURN
- 26230 GOSUB *SRCRPUT2:RETURN
- 26240 '
- 26300 *検索データ保存
- 26310 RSR=RSR+1
- 26315 IF SITM=1 THEN 26325
- 26320 SRCFND$=RIGHT$(STR$(10000+RSR ),4):GOTO 26340
- 26325 SRCFND$=RIGHT$(STR$(10000+RSR\2),4)
- 26340 LINE(550,465)-(550+21*6,479),PSET,0,BF
- 26350 SYMBOL(550,465),"●該当件数:"+SRCFND$,.75!,.75!,7
- 26380 GOSUB *検索データSAVE
- 26390 RETURN
- 26395 '
- 26400 *検索アクセス表示
- 26410 SRCYMD$=YRM$+"."+MNM$+"-"+RIGHT$(STR$(100+RDY),2)
- 26430 LINE(400,465)-(400+23*6,479),PSET,0,BF
- 26440 SYMBOL(400,465),"●検索年月日:"+SRCYMD$,.75!,.75!,7
- 26460 RETURN
- 26470 '
- 26500 *前検索データ表示
- 26510 GOSUB *SRCROPN:CLOSE
- 26520 IF BR=0 THEN RETURN
- 26530 GOSUB *SRCSGET
- 26535 GOSUB *検索条件表示
- 26540 GOSUB *初期表示ポイント検出
- 26545 GOSUB *検索結果データ表示MAIN
- 26550 SRCF=1
- 26555 MESN=4:GOSUB *MESDSP
- 26560 GOSUB *検索結果ページ表示
- 26570 RETURN
- 26580 '
- 27000 *初期表示ポイント検出
- 27010 GOSUB *SRCROPN:CLOSE
- 27020 SR=INT((BR-1)/20)*20+1
- 27030 ER=BR
- 27040 RETURN
- 27050 '
- 27060 *検索結果データ表示MAIN
- 27065 MCN=2:GOSUB *MCDSET
- 27070 GOSUB *検索結果データ初期化
- 27075 IF SITM=1 THEN 27085
- 27080 GOSUB *SRCRGET1:GOTO 27140
- 27085 GOSUB *SRCRGET2:GOTO 27140
- 27140 GOSUB *検索結果データ表示
- 27145 MCN=1:GOSUB *MCDSET
- 27150 RETURN
- 27170 '
- 27200 *検索結果データ表示
- 27210 DSPLX=DSPL:FOR DSPL=1 TO 20
- 27220 GOSUB *検索結果データ表示SUB
- 27225 NEXT DSPL:DSPL=DSPLX
- 27230 GOSUB *検索結果ページ表示
- 27240 RETURN
- 27245 *検索結果データ表示SUB
- 27250 LX1=55:LX2=120:LX3=154:LX4=200:LX5=262:LXE=595
- 27255 LY0=124:LP=16:LY=LY0+(DSPL-1)*LP
- 27265 LINE(LX1,LY)-(LXE,LY+12),PSET,%6,BF
- 27266 IF SITM=1 THEN 27310
- 27268 SYMBOL(LX1,LY),UXX$(DSPL,1),.75!,.75!,0
- 27270 IF UXX$(DSPL,2)="SUN " THEN CW=2:GOTO 27285
- 27275 IF UXX$(DSPL,2)="SAT " THEN CW=1:GOTO 27285
- 27280 CW=0:GOTO 27285
- 27285 SYMBOL(LX2,LY),UXX$(DSPL,2),.75!,.75!,CW
- 27290 SYMBOL(LX3,LY),UXX$(DSPL,3),.75!,.75!,1
- 27295 SYMBOL(LX4,LY),UXX$(DSPL,4),.75!,.75!,0
- 27300 SYMBOL(LX5,LY),UXX$(DSPL,5),.75!,.75!,0
- 27305 RETURN
- 27310 IF VXX$(DSPL,2)=" " THEN CWX=4 ELSE CWX=0
- 27311 IF VXX$(DSPL,2)="SUN " THEN CW=10:GOTO 27314
- 27312 IF VXX$(DSPL,2)="SAT " THEN CW=9 :GOTO 27314
- 27313 CW=0 :GOTO 27314
- 27314 SYMBOL(LX1,LY),VXX$(DSPL,1),.75!,.75!,%CWX
- 27315 SYMBOL(LX2,LY),VXX$(DSPL,2),.75!,.75!,%CW
- 27316 SYMBOL(LX3,LY),VXX$(DSPL,3),.75!,.75!,0
- 27320 RETURN
- 27325 '
- 27330 RETURN
- 27340 '
- 27400 *検索結果データ画面消去
- 27405 LX1=55:LXE=595:LY0=124:LP=16
- 27410 FOR DSPL=1 TO 20
- 27420 LY=LY0+(DSPL-1)*LP
- 27430 LINE(LX1,LY)-(LXE,LY+12),PSET,%6,BF
- 27440 NEXT DSPL
- 27450 X1=602:X2=614:Y1=151:Y2=413
- 27455 LINE(X1,Y1)-(X2,Y2),PSET,%1,BF
- 27460 RETURN
- 27470 '
- 27480 *ページ変更
- 27490 PCAN=0:PCANX=0:SR=SR+PDEF*20
- 27500 IF SR<1 THEN SR=1 :PCANX=1:GOTO 27520
- 27510 IF SR>BR THEN SR=INT((BR-1)/20)*20+1:PCANX=1:GOTO 27520
- 27520 ER=SR+19
- 27530 IF ER>BR THEN ER=ER-1:GOTO 27530
- 27540 IF PCANX=1 AND (SWNO=2 OR SWNO=3) THEN PCAN=1
- 27550 RETURN
- 27560 '
- 27570 '
- 27580 *検索結果データ初期化'
- 27590 FOR II=0 TO 20
- 27600 UXX$(II,1)=SPACE$(10)
- 27610 UXX$(II,2)=SPACE$(4)
- 27620 UXX$(II,3)=SPACE$(6)
- 27630 UXX$(II,4)=SPACE$(8)
- 27640 UXX$(II,5)=SPACE$(52)
- 27650 VXX$(II,1)=SPACE$(10)
- 27660 VXX$(II,2)=SPACE$(4)
- 27670 VXX$(II,3)=SPACE$(64)
- 27720 NEXT II
- 27730 RETURN
- 27740 '
- 27800 *検索結果ページ表示
- 27810 TPAGE=INT((BR-1)/20)+1:TPAGE$=RIGHT$(STR$(1000+TPAGE),3)
- 27820 PAGE=INT((SR-1)/20)+1: PAGE$=RIGHT$(STR$(1000+ PAGE),3)
- 27830 LINE(540,465)-(639,479),PSET,0,BF
- 27840 SYMBOL(540,465),"PAGE:"+PAGE$+" / "+TPAGE$,.75!,.75!,4
- 27845 GOSUB *ゲージ表示
- 27850 RETURN
- 27860 '
- 27900 *行変更
- 27910 PCAN=0:PCANX=0:SR=SR+LDEF
- 27920 IF SR<1 THEN SR=1 :PCANX=1:GOTO 27940
- 27930 IF SR>BR THEN SR=INT((BR-1)/20)*20+1:PCANX=1:GOTO 27940
- 27940 ER=SR+19
- 27950 IF ER>BR THEN ER=ER-1:GOTO 27950
- 27960 IF PCANX=1 AND (SWNO=2 OR SWNO=3) THEN PCAN=1
- 27970 RETURN
- 27980 '
- 28000 *ゲージ表示
- 28010 X1=602:X2=614:Y1=151:Y2=413
- 28020 LINE(X1,Y1)-(X2,Y2),PSET,%1,BF
- 28030 YS=Y1+INT((Y2-Y1)*((SR-1)/BR))
- 28040 YE=Y1+INT((Y2-Y1)*(ER/BR))
- 28050 LINE(X1,YS)-(X2,YE),PSET,4,BF
- 28060 RETURN
- 28100 '//////////////////// 辞書ルーチン
- 28210 '
- 28220 *辞書データ枠表示
- 28230 G=4:GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),DICD#
- 28240 MOUSE 1,,,0:LOAD@ TIFDRV$+"\hk2DICD.TIF",(W_X1(G),W_Y1(G)):MOUSE 1,,,1
- 28250 SYMBOL(W_X1(G)+23,W_Y1(G)+5),CFI$(IPNO),.75!,.75!,0
- 28270 RETURN
- 28280 *辞書データ枠消去
- 28290 G=4:PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),DICD#
- 28310 RETURN
- 28320 '
- 28330 *辞書入力スイッチ
- 28340 G=2:IF DICSF=0 THEN DICSC=0 ELSE DICSC=4
- 28350 LINE(W_X1(G)+27,W_Y1(G)+162)-(W_X1(G)+29,W_Y1(G)+170),PSET,DICSC,BF
- 28360 WAIT SWAIT
- 28370 RETURN
- 28380 '
- 28390 *辞書データ表示
- 28400 G=4
- 28410 LINE(W_X1(G)+104,W_Y1(G)+4)-(W_X1(G)+135,W_Y1(G)+16),PSET,0,BF
- 28420 WPAGE=INT((WSP-1)/16)+1
- 28430 MPAGE=INT((WRDM(IPNO)-1)/16)+1
- 28440 WPG$=RIGHT$(STR$(WPAGE),1)+"/"+RIGHT$(STR$(MPAGE),1)
- 28450 SYMBOL(W_X1(G)+108,W_Y1(G)+5),WPG$,.75!,.75!,4,,,,2
- 28460 FOR II=0 TO 15
- 28465 Y=W_Y1(G)+55+14*II
- 28466 LINE(W_X1(G)+7,Y)-(W_X1(G)+101,Y+12),PSET,0,BF
- 28470 IF (WSP+II)>WRDM(IPNO) THEN 28500
- 28480 WRDX$=LEFT$(WRD$(IPNO,WSP+II),14)
- 28485 IF KLEFT$(WRDX$,1)="★" THEN WRDDC=4 ELSE WRDDC=7
- 28490 SYMBOL(W_X1(G)+10,Y),WRDX$,.75!,.75!,WRDDC
- 28500 NEXT II
- 28510 RETURN
- 28520 '
- 28530 *辞書入力
- 28535 G=4:IPNO=SITM-1
- 28540 GOSUB *辞書データ枠表示
- 28550 SPS=INSTR(SX$(5)," ")
- 28560 IF SPS=1 THEN LMG$="" :GOTO 28590
- 28570 IF SPS>30 OR SPS=0 THEN LMG$=SX$(5) :GOTO 28590
- 28580 LMG$=LEFT$(SX$(5),SPS)
- 28590 LX=W_X1(2)+86:LY=W_Y1(2)+84:LC=4:CBC=8::LL=24::G=1:LP=0
- 28595 SYMBOL(LX,LY),LMG$,.75!,.75!,LC
- 28600 WSP=1
- 28610 GOSUB *辞書データ表示
- 28620 MESN=23:GOSUB *MESDSP
- 28630 SWPASS=1:G=4:GOSUB *MCSELECT
- 28635 IF SWNO<0 THEN SWNO=1
- 28636 IF SWNO=22 THEN GOTO 28630
- 28640 IF SWNO>5 THEN *WSEL
- 28650 ON SWNO GOTO *WS3,*WS2,*WS1,*WS4,*WS5
- 28655 GOTO 28630
- 28660 '
- 28670 *WS4:'--- PAGE INC
- 28680 G=4:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 28690 WSP=WSP+16
- 28700 IF WSP>WRDM(IPNO) THEN WSP=WSP-16:GOTO 28720
- 28710 GOSUB *辞書データ表示
- 28720 G=4:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 28730 GOTO 28620
- 28740 *WS5:'--- PAGE DEC
- 28750 G=4:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 28760 WSP=WSP-16
- 28770 IF WSP<1 THEN WSP=WSP+16:GOTO 28790
- 28780 GOSUB *辞書データ表示
- 28790 G=4:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 28800 GOTO 28620
- 28810 *WS3:'--- 手入力
- 28820 ENDF=1
- 28830 GOTO 28860
- 28840 *WS1:'--- 終了
- 28850 ENDF=0
- 28860 IF RIGHT$(LMG$,1)="/" THEN LMG$=LEFT$(LMG$,LEN(LMG$)-1)
- 28870 SX$(5)=LEFT$(LMG$+SPACE$(32),32)
- 28875 LINE(LX,LY)-(LX+32*6,LY+12),PSET,%8,BF
- 28880 SYMBOL(LX,LY),SX$(5),.75!,.75!,7
- 28890 G=4:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 28900 G=4:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 28910 G=4:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 28920 GOSUB *辞書データ枠消去
- 28930 G=2:RETURN
- 28940 *WS2:'--- 消去
- 28950 G=4:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 28960 LMG$=""
- 28970 LINE(LX,LY)-(LX+32*6,LY+12),PSET,%8,BF
- 28980 G=4:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 28990 GOTO 28620
- 29000 *WSEL'--------------
- 29010 G=4:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 29012 WSELN=WSP+(SWNO-6)
- 29014 IF WSELN>WRDM(IPNO) THEN 29050
- 29016 IF KLEFT$(WRD$(IPNO,WSELN),1)="★" THEN 29050
- 29020 LMG$=LMG$+WRD$(IPNO,WSELN)+"/"
- 29025 IF LEN(LMG$)<=32 THEN 29040
- 29026 LMG$=LEFT$(LMG$,33):CHT=KTYPE(KRIGHT$(LMG$,1),1)
- 29027 IF CHT=1 THEN LMG$=LEFT$(LMG$,31) ELSE LMG$=LEFT$(LMG$,32)
- 29040 SYMBOL(LX,LY),LMG$,.75!,.75!,4
- 29050 G=4:B=SWNO:BST(G,B)=0:GOSUB *BTN_ONOFF
- 29060 GOTO 28620
- 29070 *WS6'--------------- drag
- 29110 GOSUB *MCDRAG
- 29130 GOTO 28620
- 29140 '
- 29200 *検索結果印刷
- 29205 GOSUB *LAJ2:'FF$=CHR$(&H0A)
- 29210 MESN=1:GOSUB *MESDSP
- 29220 GOSUB *ヘッダー印刷
- 29230 FOR R=1 TO BR
- 29240 IF SITM<>1 THEN 29290
- 29250 'SITM=1
- 29260 GOSUB *SRCPGET2:PR$=""
- 29270 PR$=PR$+KNP$+VXX$(0,1)+" "
- 29271 PR$=PR$+KNP$+VXX$(0,2)+" "
- 29272 PR$=PR$+KJP$+LEFT$(VXX$(0,3),54)
- 29280 GOTO 29320
- 29290 'SITM=2
- 29300 GOSUB *SRCPGET1:PR$=""
- 29310 PR$=PR$+KNP$+UXX$(0,1)+" "
- 29311 PR$=PR$+KNP$+UXX$(0,2)+" "
- 29312 PR$=PR$+KJP$+UXX$(0,3)
- 29313 PR$=PR$+KNP$+UXX$(0,4)+" "
- 29314 PR$=PR$+KJP$+LEFT$(UXX$(0,5),40)
- 29320 '
- 29330 LPRINT KNP$+SP$+PR$
- 29340 NEXT R:LPRINT
- 29350 RETURN
- 29390 '
- 29400 *ヘッダー印刷
- 29410 IF SITM<>1 THEN 29430
- 29420 PR$=" 日付 曜日 出来事":GOTO 29440
- 29430 PR$=" 日付 曜日 項目 金額 コメント"
- 29440 LPRINT KNP$+SP$+KJP$+PR$
- 29450 LPRINT KNP$+SP$+STRING$(74,"-")
- 29460 RETURN
- 29470 '
- 29500 *LAJ :'////////// 漢字文字ピッチ縮小
- 29510 ON PRTCD+1 GOTO 29520,29530
- 29520 LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H22,&H76);:RETURN
- 29530 LPRINT SPACE$(5); :RETURN
- 29540 *LAJ2 :'////////// 漢字文字ピッチ縮小2
- 29550 ON PRTCD+1 GOTO 29560,29570
- 29560 LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H23,&H72);:RETURN
- 29570 SP$=SPACE$(5)
- 29571 'KNP$=CHR$(&H1B)+"c"+CHR$(&H1)+CHR$(&H0)
- 29572 KJP$=CHR$(&H1C)+"c"+CHR$(&H10)+CHR$(&H0)
- 29574 '
- 29578 LPRINT CHR$(&H1B)+"@"
- 29579 RETURN
- 29580 '
- 30000 *検索モード読み取り
- 30010 RESTORE *検索モード項目:READ MODEN
- 30020 FOR SMODE=1 TO MODEN
- 30030 READ SMODE$(SMODE)
- 30035 FOR II=1 TO 5:READ SMOPT(SMODE,II):NEXT II
- 30040 NEXT SMODE
- 30050 FOR II=1 TO 5:READ OPTX(II),OPTY(II):NEXT II
- 30060 RESTORE *項目データ
- 30065 FOR II=1 TO 20
- 30070 READ ITEM$(II),ITEMC(II)
- 30075 IF (II>1) AND (II<17) THEN ITEM$(II)=CFI$(II-1)
- 30080 NEXT II
- 30085 RETURN
- 30090 '
- 30480 '
- 30500 *数字漢字変換
- 30505 NBK$=""
- 30510 FOR INBK=1 TO NBN
- 30512 NBAX$=MID$(NBA$,INBK,1)
- 30514 IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 30530
- 30520 NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
- 30530 NEXT INBK
- 30540 RETURN
- 30580 '
- 31000 *FADEOUT:CLS 1:CONSOLE 0,24,0
- 31010 FOR II=0 TO 15
- 31020 PALETTE II,[16*II,16*II,16*II]
- 31030 NEXT II
- 31040 FOR II=0 TO 255 STEP 5
- 31050 FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
- 31054 PALETTE JJ,[KK,KK,KK]
- 31056 NEXT JJ
- 31060 NEXT II
- 31070 RETURN
- 31080 '
- 31200 *確認
- 31205 G=3:SWNOX=SWNO:MOUSE 1,,,0
- 31210 GET@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31220 LOAD@ TIFDRV$+"\CAUTION2.TIF",(W_X1(G),W_Y1(G))
- 31225 PLAY "o6l4ce":MOUSE 1,,,1
- 31230 FOR II=1 TO 4
- 31232 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,6
- 31234 WAIT SWAIT\10+1
- 31236 LINE(W_X1(G)+102,W_Y1(G)+9)-(W_X1(G)+102+6*39,W_Y1(G)+9+12),PSET,%9,BF
- 31237 WAIT SWAIT\10+1
- 31238 NEXT II
- 31239 SYMBOL(W_X1(G)+102,W_Y1(G)+9),CMES$,.75!,.75!,7
- 31240 MESN=19:GOSUB *SNDMSG:'28chr
- 31241 G=3:GOSUB *MCSELECT'ボタン選択
- 31242 IF SWNO<0 THEN SWNO=2
- 31243 IF SWNO=3 THEN GOSUB *MCDRAG:GOTO 31241
- 31244 IF SWNO=0 THEN 31241
- 31245 G=3:B=SWNO:BST(G,B)=1:GOSUB *BTN_ONOFF
- 31260 WAIT SWAIT\5+1
- 31270 PUT@A(W_X1(G),W_Y1(G))-(W_X2(G),W_Y2(G)),MD_SB#
- 31272 CAUNO=SWNO:SWNO=SWNOX
- 31275 RETURN
- 31280 '
- 32000 '
- 32010 *ABOUT表示
- 32020 X1A=146:Y1A=150:XPA=326:YPA=100
- 32030 MOUSE 1,,,0
- 32040 GET@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 32050 LOAD@ TIFDRV$+"\hk2logo.tif",(X1A,Y1A)
- 32060 MOUSE 1,,,1
- 32070 CMES$=ABOUT$:GOSUB *確認
- 32080 PUT@A(X1A,Y1A)-(X1A+XPA,Y1A+YPA),ABOUTD#
- 32090 RETURN
- 32100 '
- 33000 *PROCD:'処理状況表示
- 33010 ON PCCD GOTO *PC01,*PC02,*PC03
- 33020 *PC01
- 33030 GET@A(150,200)-(483,256),MD_SB#
- 33040 MOUSE 1,,,0:LOAD@ TIFDRV$+"\HK2PROC.TIF",(150,200):MOUSE 1,,,1
- 33050 SYMBOL(226,204),PCMES$,.75!,.75!,0
- 33060 RETURN
- 33070 *PC02
- 33080 PUT@A(150,200)-(483,256),MD_SB#
- 33090 RETURN
- 33100 *PC03:' pcmax,pccur,pcint
- 33110 XP0=157:YP0=240:XPM=477:YPM=250
- 33120 IF (PCCUR MOD PCINT)<>0 THEN RETURN
- 33130 XP=XP0+INT((XPM-XP0)*(PCCUR/PCMAX))
- 33140 LINE(XP0,YP0)-(XP,YPM),PSET,1,BF
- 33150 RETURN
- 33160 '
- 34000 *PATHMAKE:'---------- パス作成 -------------------------------
- 34005 DRV$=LEFT$(XDRV$,2)
- 34010 IF LEN(XDRV$)=3 THEN DRV$=LEFT$(XDRV$,2):PATH$="":GOTO 34020
- 34015 PATH$=RIGHT$(XDRV$,LEN(XDRV$)-2)
- 34020 RETURN
- 34030 '
- 35000 *HKIOPN:'---------- インデックスファイルオープン
- 35005 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 35020 FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
- 35030 OPEN "R",#2,FLN$
- 35040 FIELD #2,6 AS I$(1),32 AS I$(2)
- 35050 IR=LOF(2)
- 35060 RETURN
- 35070 '
- 35100 *HKDOPN:'---------- 家計簿データファイルオープン
- 35105 XDRV$=DATDRV$:GOSUB *PATHMAKE
- 35120 FLN$=DRV$+"(1120)"+PATH$+"\HL"+IYM$+".DAT"
- 35130 OPEN "R",#1,FLN$
- 35140 FIELD #1,128 AS D$(1),10*16 AS D$(2),52*4 AS D$(3),52*4 AS D$(4),52*4 AS D$(5),52*4 AS D$(6)
- 35150 AR=LOF(1)
- 35160 RETURN
- 35170 '
- 35200 *SRCSOPN:'---------- 検索条件ファイルオープン
- 35205 XDRV$=PRGDRV$:GOSUB *PATHMAKE
- 35220 FLN$=DRV$+"(62)"+PATH$+"\SRCS.DAT"
- 35230 OPEN "R",#1,FLN$
- 35240 FIELD #1,4 AS S$(1),2 AS S$(2),4 AS S$(3),2 AS S$(4),32 AS S$(5),8 AS S$(6),8 AS S$(7),2 AS S$(8)
- 35260 RETURN
- 35270 '
- 35300 *SRCROPN:'---------- 検索結果ファイルオープン
- 35305 XDRV$=RAMDRV$:GOSUB *PATHMAKE
- 35320 FLN$=DRV$+"(80)"+PATH$+"\SRCW.DAT"
- 35330 OPEN "R",#3,FLN$
- 35340 FIELD #3,10 AS U$(1),4 AS U$(2),6 AS U$(3),8 AS U$(4),52 AS U$(5)
- 35350 FIELD #3,10 AS V$(1),4 AS V$(2),64 AS V$(3),2 AS V$(4)
- 35360 BR=LOF(3)
- 35365 RETURN
- 35370 '
- 35400 *DTSAVE:'---------- 日付ジャンプデータファイル作成
- 35402 GOSUB *DTCHK
- 35405 XDRV$=RAMDRV$:GOSUB *PATHMAKE
- 35420 FLN$=DRV$+PATH$+"\SRCjump.DAT"
- 35430 OPEN "O",#1,FLN$
- 35440 PRINT #1,DT$:CLOSE
- 35450 RETURN
- 35460 '
- 35500 *DTCHK :'---------- 日付ジャンプデータファイルチェック
- 35505 XDRV$=RAMDRV$:GOSUB *PATHMAKE
- 35520 FLN$=DRV$+"(1)"+PATH$+"\SRCjump.DAT"
- 35530 OPEN "R",#1,FLN$:FIELD #1,1 AS X$
- 35540 CLOSE :KILL DRV$+PATH$+"\SRCjump.DAT"
- 35550 RETURN
- 35560 '
- 36000 *HKISRC:'---------- インデックスファイル検索
- 36005 FIDX=0
- 36010 GOSUB *HKIOPN
- 36020 FOR R=1 TO IR
- 36030 GET #2,R
- 36040 IF IYM$<>I$(1) THEN 36060
- 36050 IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
- 36060 NEXT R:IF FIDX=0 THEN 36070
- 36062 GET #2,RI
- 36064 YRM=VAL(LEFT$(I$(1),4)):MNM=VAL(RIGHT$(I$(1),2))
- 36070 CLOSE #2
- 36080 RETURN
- 36090 '
- 36200 *HKDGET:'---------- 家計簿データ読み込み
- 36210 GOSUB *HKDOPN
- 36220 R=RDY:IF R>31 THEN CLOSE:RETURN
- 36230 GET #1,R
- 36240 DEV$=D$(1)
- 36250 FOR II=1 TO 16:DYN$(II )=MID$(D$(2),(II-1)*10+1,10):NEXT II
- 36252 FOR II=1 TO 4:DRM$(II+ 0)=MID$(D$(3),(II-1)*52+1,52):NEXT II
- 36253 FOR II=1 TO 4:DRM$(II+ 4)=MID$(D$(4),(II-1)*52+1,52):NEXT II
- 36254 FOR II=1 TO 4:DRM$(II+ 8)=MID$(D$(5),(II-1)*52+1,52):NEXT II
- 36255 FOR II=1 TO 4:DRM$(II+12)=MID$(D$(6),(II-1)*52+1,52):NEXT II
- 36260 GOSUB *HKDCAL
- 36280 CLOSE #1
- 36290 RETURN
- 36295 '
- 36400 *HKDCAL:'---------- 家計簿金額計算
- 36410 FOR II=1 TO 16:DYN#(II)=VAL(DYN$(II)):NEXT II
- 36490 RETURN
- 36495 '
- 36500 *SRCSGET:'---------- 検索条件ファイル読み込み
- 36510 GOSUB *SRCSOPN
- 36520 GET #1,1
- 36530 FOR II=1 TO 8:SX$(II)=S$(II):NEXT II
- 36540 CLOSE #1
- 36542 SR1YR=VAL(SX$(1)):SR1MN=VAL(SX$(2))
- 36544 SR2YR=VAL(SX$(3)):SR2MN=VAL(SX$(4))
- 36546 YNL#=VAL(SX$(6)):YNH#=VAL(SX$(7))
- 36548 SITM=VAL(SX$(8))
- 36550 RETURN
- 36560 '
- 36600 *SRCSPUT:'---------- 検索条件ファイル書き込み
- 36610 GOSUB *SRCSOPN
- 36620 FOR II=1 TO 8:LSET S$(II)=SX$(II):NEXT II
- 36630 PUT #1,1
- 36640 CLOSE #1
- 36650 RETURN
- 36660 '
- 36700 *SRCRPUT1:'----------検索結果ファイル書き込み1
- 36710 GOSUB *SRCROPN
- 36720 FOR II=1 TO 5:LSET U$(II)=UX$(II):NEXT II
- 36730 PUT #3,RSR
- 36740 CLOSE #3:RETURN
- 36750 *SRCRPUT2:'----------検索結果ファイル書き込み2
- 36760 GOSUB *SRCROPN
- 36770 FOR II=1 TO 3:LSET V$(II)=VX$(II):NEXT II
- 36780 PUT #3,RSR
- 36790 CLOSE #3:RETURN
- 36795 '
- 36800 *SRCRGET1:'----------検索結果ファイル読み込み1
- 36810 GOSUB *SRCROPN:DSPL=1
- 36815 FOR R=SR TO ER
- 36820 GET #3,R
- 36830 FOR II=1 TO 5:UXX$(DSPL,II)=U$(II):NEXT II
- 36832 DSPL=DSPL+1
- 36835 NEXT R
- 36840 CLOSE #3:RETURN
- 36850 *SRCRGET2:'----------検索結果ファイル読み込み2
- 36860 GOSUB *SRCROPN:DSPL=1
- 36865 FOR R=SR TO ER
- 36870 GET #3,R
- 36880 FOR II=1 TO 3:VXX$(DSPL,II)=V$(II):NEXT II
- 36882 DSPL=DSPL+1
- 36885 NEXT R
- 36890 CLOSE #3:RETURN
- 36895 '
- 36900 *SRCPGET1:'----------検索結果ファイル読み込み(印刷用)1
- 36910 GOSUB *SRCROPN
- 36920 GET #3,R:DSPL=0
- 36930 FOR II=1 TO 5:UXX$(DSPL,II)=U$(II):NEXT II
- 36940 CLOSE #3:RETURN
- 36950 *SRCPGET2:'----------検索結果ファイル読み込み(印刷用)2
- 36960 GOSUB *SRCROPN:DSPL=1
- 36970 GET #3,R:DSPL=0
- 36980 FOR II=1 TO 3:VXX$(DSPL,II)=V$(II):NEXT II
- 36990 CLOSE #3:RETURN
- 36995 '
- 37000 *DICREAD:'---------- 辞書読み込み 'V1.1 1993.07.11
- 37020 FOR II=1 TO 15
- 37030 DICNO$=RIGHT$(STR$(100+II),2)
- 37040 OPEN "I",#4,DICDRV$+"\HKWRD"+DICNO$+".DIC"
- 37050 WRDC=1
- 37060 IF EOF(4)<>0 THEN 37140
- 37070 INPUT #4,WLN$:WLN(II,WRDC)=VAL(WLN$)
- 37080 IF EOF(4)<>0 THEN 37140
- 37090 INPUT #4,WFR$:'DUMMY
- 37100 IF EOF(4)<>0 THEN 37140
- 37110 INPUT #4,WRD$:WRD$(II,WRDC)=WRD$
- 37120 WRDC=WRDC+1
- 37130 IF WRDC<=128 THEN 37060
- 37140 WRDM(II)=WRDC-1
- 37150 CLOSE #4
- 37160 NEXT II:DICEXF=1
- 37170 RETURN
- 37180 '
- 37190 '
- 39000 '//////////////////////////////////////////////////
- 39010 *CONFIGファイルチェック' V1.4 1994.06.19
- 39020 ' FOR HK T.Komura
- 39030 CFLNO=0
- 39040 OPEN "R",#1,"(1)HK.CFG"
- 39050 FIELD #1,1 AS D$
- 39060 IF LOF(1)=0 THEN *CFGFE1
- 39070 CLOSE
- 39080 OPEN "I",#1,"HK.CFG"
- 39085 GOSUB *CFGREAD:ABOUT$=CFG$ :'-- about$ [0]
- 39090 GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$ [1]
- 39092 FILES ,C,ARY&:N=ARY&(1):DIM ARY$(N)
- 39094 FILES ,N,ARY$:PRGDRV$=ARY$(0):ERASE ARY$
- 39100 GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$ [2]
- 39110 GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$ [3]
- 39120 TIFDRV$=PRGDRV$+"\TIFF" :'-- TIFDRV$ [4]
- 39130 GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$ [5]
- 39140 GOSUB *CFGREAD :'-- SNDMF [6]
- 39150 IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
- 39160 SNDMF=VAL(RIGHT$(CFG$,1))
- 39170 GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$ [7]
- 39180 GOSUB *CFGREAD :'-- SWAIT [8]
- 39190 IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
- 39200 SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
- 39210 FOR II=1 TO 15 :' [9]-[10]
- 39220 GOSUB *CFGREAD:CFI$(II)=CFG$
- 39230 NEXT II
- 39240 GOSUB *CFGREAD :'-- DICIF [11]
- 39250 IF LEFT$(CFG$,5)<>"DICIF" THEN *CFGFE2
- 39260 DICIF=VAL(RIGHT$(CFG$,1))
- 39270 GOSUB *CFGREAD :'-- DICSF [11]
- 39280 IF LEFT$(CFG$,5)<>"DICSF" THEN *CFGFE2
- 39290 DICSF=VAL(RIGHT$(CFG$,1))
- 39300 GOSUB *CFGREAD:DICDRV$=CFG$:'-- DICDRV$ [12]
- 39310 GOSUB *CFGREAD :'-- taxr$ [13]
- 39320 IF LEFT$(CFG$,4)<>"TAXR" THEN *CFGFE2
- 39330 TAXR$=RIGHT$(CFG$,LEN(CFG$)-5)
- 39340 GOSUB *CFGREAD :'-- CALCF [14]
- 39350 IF LEFT$(CFG$,5)<>"CALCF" THEN *CFGFE2
- 39360 CALCF=VAL(RIGHT$(CFG$,1))
- 39370 GOSUB *CFGREAD :'--SDAY [15]
- 39380 IF LEFT$(CFG$,4)<>"SDAY" THEN *CFGFE2
- 39390 SDAY=VAL(RIGHT$(CFG$,2))
- 39400 SDAY$=RIGHT$(STR$(100+SDAY),2)
- 39410 IF SDAY>0 THEN MOFF=0 ELSE MOFF=-1
- 39420 GOSUB *CFGREAD :'-- SSYMD$ [16]
- 39430 IF LEFT$(CFG$,5)<>"SSYMD" THEN *CFGFE2
- 39440 SSYMD$=RIGHT$(CFG$,8)
- 39450 CLOSE
- 39460 RETURN
- 39470 *CFGREAD:'////////////////////////////////////
- 39480 IF EOF(1)<>0 THEN *CFGFE3
- 39490 LINE INPUT #1,CFG$:CFLNO=CFLNO+1
- 39500 IF LEFT$(CFG$,1)="/" THEN 39480
- 39510 RETURN
- 39520 '------------------------------------------------------------------
- 39530 *CFGFE1
- 39540 CFE$="HK.CFG ファイルが見当たりません。 家計簿を終了します。"
- 39550 GOTO *CFGFEP
- 39560 *CFGFE2
- 39570 CFE$="HK.CFGファイル 行番号"+STR$(CFLNO)+"の内容に誤りがあります。 家計簿を終了します。"
- 39580 GOTO *CFGFEP
- 39590 *CFGFE3
- 39600 CFE$="HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
- 39610 GOTO *CFGFEP
- 39620 '-------------------------------------------------------------------
- 39630 *CFGFEP
- 39640 LOCATE 2,23:COLOR 6:PRINT CFE$;
- 39650 CLOSE :WAIT 100
- 39660 STOP
- 39670 '///////////////////////////////////////////////////////////////////
- 40000 *ボタン座標:'-------------------------------------------------------
- 40010 DATA 6 'SWGN スイッチグループ数
- 40020 '/////////////////////////////
- 40030 '-------------------- [G1] メインスイッチグループ
- 40040 ' SWN(G),SMX,SMY,SMW
- 40050 DATA 41 :'ボタン個数
- 40060 ' X1 ,X2 ,Y1 ,Y2
- 40070 DATA 000,639,000,479 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 40080 DATA 000,000,000,000 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 40090 '--------------------
- 40100 ' XB1 XB2 YB1 YB2
- 40110 DATA 0,123, 0, 22 ' HK2 1
- 40120 DATA 124,168, 5, 22 '記 入 2
- 40130 DATA 169,212, 5, 22 '検 索 3
- 40140 DATA 213,256, 5, 22 '分 析 4
- 40150 DATA 257,300, 5, 22 'カレンダー 5
- 40160 DATA 301,344, 5, 22 '設 定 6
- 40170 DATA 444,567, 0, 22 '日 付 7
- 40180 DATA 568,591, 0, 22 'clock 8
- 40190 DATA 592,615, 0, 22 'help 9
- 40200 DATA 616,639, 0, 22 'END 10
- 40210 '
- 40220 DATA 11, 43, 29, 48 'print 11
- 40230 DATA 124,156, 29, 48 'md-word 12
- 40240 DATA 157,189, 29, 48 'md-mony 13
- 40250 DATA 190,222, 29, 48 'md-w/m 14
- 40260 DATA 223,255, 29, 48 'md-month 15
- 40270 DATA 544,591, 28, 54 '実行 16
- 40280 DATA 592,639, 28, 54 '取消 17
- 40290 '
- 40300 DATA 602,615,123,136 'page up 18
- 40310 DATA 602,615,137,150 'up 19
- 40320 DATA 602,615,414,427 'dn 20
- 40330 DATA 602,615,428,441 'page dn 21
- 40340 '
- 40350 DATA 25, 52,123,137 '1 22
- 40360 DATA 25, 52,139,153 '2 23
- 40370 DATA 25, 52,155,169 '3 24
- 40380 DATA 25, 52,171,185 '4 25
- 40390 DATA 25, 52,187,201 '5 26
- 40400 DATA 25, 52,203,217 '6 27
- 40410 DATA 25, 52,219,233 '7 28
- 40420 DATA 25, 52,235,249 '8 29
- 40430 DATA 25, 52,251,265 '9 30
- 40440 DATA 25, 52,267,281 '10 31
- 40450 DATA 25, 52,283,297 '11 32
- 40460 DATA 25, 52,299,313 '12 33
- 40470 DATA 25, 52,315,329 '13 34
- 40480 DATA 25, 52,331,345 '14 35
- 40490 DATA 25, 52,347,361 '15 36
- 40500 DATA 25, 52,363,377 '16 37
- 40510 DATA 25, 52,379,393 '17 38
- 40520 DATA 25, 52,395,409 '18 39
- 40530 DATA 25, 52,411,425 '19 40
- 40540 DATA 25, 52,427,441 '20 41
- 41000 '-------------------- [G2] 検索条件選択スイッチグループ
- 41010 ' SWN(G),SMX,SMY,SMW
- 41020 DATA 35 :'ボタン個数
- 41030 ' X1 ,X2 ,Y1 ,Y2
- 41040 DATA 150,476,150,367 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 41050 DATA 000,543,023,465 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 41060 '--------------------
- 41070 ' XB1 XB2 YB1 YB2
- 41080 DATA 249,284, 6, 22 '決定-------- 1
- 41090 DATA 285,320, 6, 22 '取消-------- 2
- 41100 DATA 155,174, 30, 46 '▲---------- 3
- 41110 DATA 175,194, 30, 46 '▼---------- 4
- 41120 DATA 258,277, 30, 46 '▲---------- 5
- 41130 DATA 278,297, 30, 46 '▼---------- 6
- 41140 DATA 155,174, 53, 69 '▲---------- 7
- 41150 DATA 175,194, 53, 69 '▼---------- 8
- 41160 DATA 258,277, 53, 69 '▲---------- 9
- 41170 DATA 278,297, 53, 69 '▼----------10
- 41180 DATA 280,297, 82, 98 'KEY WORD----11
- 41190 DATA 152,169,105,121 '金額下限----12
- 41200 DATA 280,297,105,121 '金額上限----13
- 41210 DATA 35, 68,158,175 '辞書 ----14
- 41215 DATA 8, 21, 8, 21 'drag ----15
- 41220 '
- 41230 DATA 269,314,189,205 '出来事------16 1
- 41240 DATA 85,130,134,150 '給 与------17 2
- 41250 DATA 85,130,151,167 '臨 時------18 3
- 41260 DATA 85,130,168,184 '他収入------19 4
- 41270 DATA 131,176,134,150 '食 費------20 5
- 41280 DATA 131,176,151,167 '生活費------21 6
- 41290 DATA 131,176,168,184 '洗濯代------22 7
- 41300 DATA 177,222,134,150 '光熱費------23 8
- 41310 DATA 177,222,151,167 '被服費------24 9
- 41320 DATA 177,222,168,184 '交際費------25 10
- 41330 DATA 223,268,134,150 '娯楽費------26 11
- 41340 DATA 223,268,151,167 '酒 代------27 12
- 41350 DATA 223,268,168,184 '車維持------28 13
- 41360 DATA 269,314,134,150 '教育費------29 14
- 41370 DATA 269,314,151,167 '雑 費------30 15
- 41380 DATA 269,314,168,184 '他支出------31 16
- 41390 DATA 85,130,189,205 '全収入------32 17
- 41400 DATA 131,176,189,205 '基支出------33 18
- 41410 DATA 177,222,189,205 '全支出------34 19
- 41420 DATA 223,268,189,205 '全収支------35 20
- 41430 '
- 42000 '-------------------- スイッチグループ[3] 確認
- 42010 DATA 3 :'ボタン個数
- 42020 ' X1 ,X2 ,Y1 ,Y2
- 42030 DATA 106,522,258,287 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42040 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42050 '--------------------
- 42060 ' XB1 XB2 YB1 YB2
- 42070 DATA 338,369, 6, 23 ' OK 01
- 42080 DATA 370,401, 6, 23 ' NG 02
- 42090 DATA 8, 27, 5, 24 'drag
- 42100 '
- 42110 '
- 42120 '-------------------- スイッチグループ(4) 項目辞書
- 42130 DATA 22 :'ボタン個数
- 42140 ' X1 ,X2 ,Y1 ,Y2
- 42150 DATA 498,639,125,409 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42160 DATA 498,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42170 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 42180 DATA 6, 35, 25, 43 ' 取消
- 42190 DATA 36, 65, 25, 43 ' 消去
- 42200 DATA 66,101, 25, 43 ' 入力
- 42210 DATA 102,118, 25, 43 ' ヌ
- 42220 DATA 119,135, 25, 43 ' ネ
- 42230 DATA 103,135, 55, 68 ' 1
- 42240 DATA 103,135, 69, 82 ' 2
- 42250 DATA 103,135, 83, 96 ' 3
- 42260 DATA 103,135, 97,110 ' 4
- 42270 DATA 103,135,111,124 ' 5
- 42280 DATA 103,135,125,138 ' 6
- 42290 DATA 103,135,139,152 ' 7
- 42300 DATA 103,135,153,166 ' 8
- 42310 DATA 103,135,167,180 ' 9
- 42320 DATA 103,135,181,194 ' 10
- 42330 DATA 103,135,195,208 ' 11
- 42340 DATA 103,135,209,222 ' 12
- 42350 DATA 103,135,223,236 ' 13
- 42360 DATA 103,135,237,250 ' 14
- 42370 DATA 103,135,251,264 ' 15
- 42380 DATA 103,135,265,278 ' 16
- 42390 DATA 5, 18, 4, 17 'drag
- 42400 '-------------------- スイッチグループ(5) Helpグループ
- 42410 DATA 6 :'ボタン個数
- 42420 ' X1 ,X2 ,Y1 ,Y2
- 42430 DATA 60,577,100,421 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42440 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42450 '
- 42460 ' XB1 XB2 YB1 YB2 SWM$ SMC SWNO.
- 42470 DATA 499,512, 25, 38 '前頁
- 42480 DATA 499,512, 39, 52 '前行
- 42490 DATA 499,512,289,302 '次行
- 42500 DATA 499,512,303,316 '次頁
- 42510 DATA 499,512, 6, 19 '終了
- 42520 DATA 6, 17, 7, 18 'drag
- 42530 '
- 42540 '-------------------- スイッチグループ[6] デジタル時計
- 42550 DATA 2 :'ボタン個数
- 42560 ' X1 ,X2 ,Y1 ,Y2
- 42570 DATA 46,607,100,306 :' ウィンドウ座標 W_X1,W_X2,W_Y1,W_Y2
- 42580 DATA 000,639,023,460 :'ドラッグ有効範囲 W_XA,W_XB,W_YA,W_YB
- 42590 '--------------------
- 42600 ' XB1 XB2 YB1 YB2 SWM$ SMC
- 42610 DATA 543,561, 0, 18 ' end 01
- 42620 DATA 3, 16, 3, 16 ' drag 02
- 42630 '
- 50000 *検索モード項目
- 50010 DATA 4
- 50020 ' " 検索モード ",開始,終了,Key ,金額,項目
- 50030 DATA "キーワード検索" , 1, 1, 1, 0, 1
- 50040 DATA "金額範囲検索" , 1, 1, 0, 1, 1
- 50050 DATA "キーワード・金額範囲検索", 1, 1, 1, 1, 1
- 50060 DATA " 月間一覧表示 " , 1, 0, 0, 0, 1
- 50061 ' x y
- 50062 DATA 14,33
- 50063 DATA 14,56
- 50064 DATA 14,85
- 50065 DATA 14,108
- 50066 DATA 14,137
- 50070 *項目データ
- 50080 DATA "出来事",0'----- 1
- 50090 DATA "給 与",4'----- 2
- 50100 DATA "車維持",1'-----13
- 50110 DATA "教育費",1'-----14
- 50120 DATA "雑 費",1'-----15
- 50130 DATA "他支出",2'-----16
- 50140 DATA "洗濯代",1'----- 7
- 50150 DATA "光熱費",1'----- 8
- 50160 DATA "被服費",1'----- 9
- 50170 DATA "交際費",1'-----10
- 50180 DATA "娯楽費",1'-----11
- 50190 DATA "酒 代",1'-----12
- 50200 DATA "車維持",1'-----13
- 50210 DATA "教育費",1'-----14
- 50220 DATA "雑 費",1'-----15
- 50230 DATA "他支出",2'-----16
- 50240 DATA "全収入",2'-----17
- 50250 DATA "基支出",2'-----18
- 50260 DATA "全支出",2'-----19
- 50270 DATA "全収支",2'-----20
- 50280 '
- 50290 *DCLOCKDATA
- 50300 ' 1,2,3,4,5,6,7
- 50310 DATA 1,1,1,1,1,1,0 '0 (1)
- 50320 DATA 0,1,1,0,0,0,0 '1 ---
- 50330 DATA 1,1,0,1,1,0,1 '2 | |(2)
- 50340 DATA 1,1,1,1,0,0,1 '3 (6)|(7)| ●(8)
- 50350 DATA 0,1,1,0,0,1,1 '4 ---
- 50360 DATA 1,0,1,1,0,1,1 '5 | |(3) ●(9)
- 50370 DATA 1,0,1,1,1,1,1 '6 (5)| |
- 50380 DATA 1,1,1,0,0,0,0 '7 ---
- 50390 DATA 1,1,1,1,1,1,1 '8 (4)
- 50400 DATA 1,1,1,1,0,1,1 '9
- 50410 ' dgx,dgy
- 50420 DATA 80, 40 '(1)
- 50430 DATA 120, 70 '(2)
- 50440 DATA 110,140 '(3)
- 50450 DATA 80,180 '(4)
- 50460 DATA 40,140 '(5)
- 50470 DATA 50, 70 '(6)
- 50480 DATA 80,100 '(7)
- 50490 DATA 280, 80 '(8)
- 50500 DATA 280,140 '(9)
- 50510 ' ofset
- 50520 DATA 0 '1桁
- 50530 DATA 120 '2桁
- 50540 DATA 280 '3桁
- 50550 DATA 400 '4桁
- 50560 '
- 60000 ' 座標確認 DEBUG ROUTINE
- 60010 'LOAD@ "e:\work\hk2\tiff\hk2dicd.tif",(0,0)'
- 60020 MOUSE 0:MOUSE 1,0,0,1
- 60030 IF MOUSE(2,1)<>0 THEN STOP
- 60040 IF MOUSE(2,0)=0 THEN 60040
- 60050 X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
- 60060 LINE(0,460)-(639,479),PSET,0,BF
- 60070 SYMBOL(0,460),"X="+STR$(X_M)+" Y="+STR$(Y_M),.75!,.75!,6
- 60080 GOTO 60030
- 60090 '
- 61000 '
- 61100 *検索条件TESTファイル作成
- 61110 DATDRV$="A:\"
- 61120 SX$(1)="1992"
- 61130 SX$(2)="01"
- 61140 SX$(3)="1992"
- 61150 SX$(4)="07"
- 61160 SX$(5)="012345678901234567890123"
- 61165 SX$(5)="0123456789小村利明890123"
- 61170 SX$(6)="00000000"
- 61180 SX$(7)="99999999"
- 61190 SX$(8)="01"
- 61200 GOSUB *SRCSPUT
- 61210 STOP
- 62000 LOCATE 2,6:COLOR 0'
- 62010 PRINT "1992.02.14(日) 給 与 00000000 ";STRING$(32,"A");
- 62100 LOCATE 2,7:COLOR 0
- 62110 PRINT "1992.02.14 ";STRING$(64,"A");
- 62120 STOP
-